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);
从使用上面的代码我可以在其他活动中获得字符串值,但我需要在另一个活动中使用editText
个对象。
任何人都可以给出想法吗?
由于
答案 0 :(得分:5)
为什么不发送ID然后在接收器Activity上使用findViewByid()?希望这会有所帮助:
Intent intent = new Intent();
String name="textView";
int value=EditText.getID();
intent.putExtra(name, value);
setResult(RESULT_OK, intent);
关于接收器活动:
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");
}
}
}
答案 1 :(得分:0)
嗯..使用Singleton静态类可以实现相同的效果。在一个活动中将您的edittext的引用存储在SingleTon类中,并在另一个活动中将其检索回来并实现您想要执行的操作。多数民众赞成在Java中可能解决您的问题之一。
就Android SDK而言,您无法将Intent中的视图obj引用传递给另一个活动。
答案 2 :(得分:0)
好吧,尽管对EditText
Activity
EditText
的无效感到大吼大叫,我会说可以做到。例如,声明自己的类,它扩展Parcelable
并实现public class MyEditText extends EditText implements Parcelable
{
//a lot of things to be done...
}
接口
MyEditText
在这种情况下,您可以轻松地将Parcelable
作为Activity
发送给另一个Intent intent = new Intent(this,Name.class);
MyEditText et=new MyEditText(this);
intent.putExtra("key", et);
startActivity(intent);
{{1}}
这种方法的确实实用性仍然存在争议。