如何把 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?
答
为什么不发送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");
}
}
}
答
为什么不在startActivityForResult方法中做处理呢? 不需要传递EditText吧
答
你是要传editText里面的文本还是editText 对象。
当一个新的activity开启后,前一个activity处于非活动状态,你就算能取到对象也没什么用把,如果是要在返回时将数据传到前一个activity中的editText,可以用startActivityForResult把要赋的值传回来,再加到editText中