2 hcg 21 hcg_21 于 2013.03.27 11:12 提问

如何把 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
xiaoyan_12   2013.04.02 13: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");
        }
    }
}
pennons
pennons   2013.03.28 15:21

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

cj6585256
cj6585256   2013.03.27 11:35

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!