hcg_21
2013-03-27 03:12
采纳率: 78.8%
浏览 6.3k

如何把 EditText 传递到另外一个 activity ?

Intent intent = new Intent(this,Name.class);
intent.putExtra("key", et.getText().toString());
startActivity(intent);

Intent intent = getIntent();
String str = intent.getStringExtra("key");
tv.setText(str);

使用上面的代码可以从其它activity中获取字符串值,但是在另一个activity中我需要editText 对象。如何把EditText传递到另外一个activity?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • xiaoyan_12 2013-04-02 05:29
    已采纳

    为什么不发送ID,然后在 receiver Activity 上使用 findViewByid():

    Intent intent = new Intent(); 
    String name="textView";
    int value=EditText.getID();
    intent.putExtra(name, value);
    setResult(RESULT_OK, intent);
    

    在receiver Activity:

    private static final int REQUEST_CODE=1;
    private int id;
    private EditText et;
    private Intent i;
    
    i = new Intent(this,Name.class);
    startActivityForResult(intent, REQUEST_CODE);
    et = (EditText)findViewById(id);
    
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (resultCode == RESULT_OK && requestCode == REQUEST_CODE)
        {
            if (data.hasExtra("textView"))
            {
                //Get the selected file.
                id = data.getExtras().getInt("textView");
            }
        }
    }
    
    点赞 评论
  • 码密码密哄 2013-03-27 03:35

    为什么不在startActivityForResult方法中做处理呢? 不需要传递EditText吧

    点赞 评论
  • 空蝉- 2013-03-28 07:21

    你是要传editText里面的文本还是editText 对象。
    当一个新的activity开启后,前一个activity处于非活动状态,你就算能取到对象也没什么用把,如果是要在返回时将数据传到前一个activity中的editText,可以用startActivityForResult把要赋的值传回来,再加到editText中

    点赞 评论

相关推荐 更多相似问题