【问题标题】:Android - Export Option on ListAdapter to another Activity which has EditTextAndroid - ListAdapter 上的导出选项到另一个具有 EditText 的 Activity
【发布时间】:2014-02-27 08:12:07
【问题描述】:

所以我有一个ListAdapter,它有各种选项,我想要的是,当用户点击ListAdapter 时,一个具有EditText 的活动开始,EditText 应该自动填充选项是,点击ListAdapter

目前我有 Main.java:

public class Main extends ListActivity{
    String options[] = {"option1","option2"};
    protected void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setListAdapter(new ArrayAdapter<String>   (Main.this,android.R.layout.simple_list_item_1,options);
    }

    protected void onListItemClick(ListView l,View v, int position, long id){
       super.onListItemClick(l,v,position,id);
       try{
       Class theClass = Class.forname("com.example.SecondActivity");
       Intent oI = new Intent(Main.this,theClass);
       startActivity(oI);
       }catch(ClassNotFoundException e){e.printStackTrace();}
    }

SecondActivity.java(这包含带有编辑文本的活动):

public class SecondActivity extends Activity{
   protected void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContextView(R.layout.secondactivity)
      EditText edt = (EditText) findViewById(R.id.edt1);
    }

我需要额外做些什么才能使其正常工作。非常感谢所有帮助。

【问题讨论】:

    标签: java android android-edittext listadapter


    【解决方案1】:

    通过使用 putExtra 而不是 getExtras 解决了问题

    【讨论】:

      【解决方案2】:

      试试:

      protected void onListItemClick(ListView l,View v, int position, long id){
         super.onListItemClick(l,v,position,id);
         try{
         Class theClass = Class.forname("com.example.SecondActivity");
         Intent oI = new Intent(Main.this,theClass);
      
         oI.putExtra("selectedText", options[position]);
      
         startActivity(oI);
         }catch(ClassNotFoundException e){e.printStackTrace();}
      }
      
      
      public class SecondActivity extends Activity{
      protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContextView(R.layout.secondactivity)
      
        EditText edt = (EditText) findViewById(R.id.edt1);
         if(getIntent()!=null && getIntent().getExtras()!=null)
          {
              String value = getIntent().getStringExtra("selectedText");
              edt.setText(value);
          }
      }
      

      让我知道它是否可以正常工作,我还没有测试过。

      【讨论】:

      • 我试过了,但它抛出错误并且我的应用程序崩溃了。
      • 我做了一些更改,如果您还没有解决问题,请再试一次。
      【解决方案3】:

      启动活动时,您可以向该活动发送更多信息,例如整数或字符串值。可以通过以下方式发送:

      Intent addIntent = new Intent();
      addIntent.putExtra(String name, String value).
      

      因此,您可以将名称发送到您的新活动。然后您需要使用 getExtra() 函数在 onCreate 函数中获取此值。并且可以用来填充editText。

      以下链接将为您提供更多见解:

      How to use putExtra() and getExtra() for string data

      【讨论】:

      • 我尝试这样做,但我无法取得任何结果。
      • 能否请您解释一下您在哪个特定地方遇到了问题?
      • 我不明白的是 EditText 怎么知道 ListAdapter 上的哪个位置被点击了?
      • 在onListItemClick中,参数之一是“位置”。您甚至可以将此信息传递给您的新活动。
      • 这正是我所做的,但随后应用程序崩溃了。
      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 2019-09-10
      相关资源
      最近更新 更多