我想实现该活动从android中的两个活动获取数据。详情:
总共有三项活动。 Activity_0
有两个EditTexts
,EditText_1
和EditText_2
。当我点击EditText_1
时,它会链接到Activity_1
并选择数据,然后返回Activity_0
并将值传递给EditText_1
,当我点击EditText_2
时,链接到Activity_2
并选择数据,然后返回Activity_0
并将值传递给EditText_2
。问题是,当我点击第二个Activity_0
时,EditText
会刷新,所以每次点击两次时我只会得到一个值。
答案 0 :(得分:0)
呀...有可能......你必须将edittext onClickListener
的意图与putExtra
Intent i = new Intent(Activity_0.this, Activity_1.class);
i.putExtra("xyz", xyz);
答案 1 :(得分:0)
我可以告诉你的最简单方法是startActivityForResult
。
在edittext1 startActivityForResult(new Intent(context, EditText1SelectActivity.class), 1);
从EditText1SelectActivity
Intent intent = new Intent();
intent.putExtra("value", "selected value");
setResult(Activity.RESULT_OK, intent);
finish();
并再次在您的mainActivity中获取onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
Bundle res = data.getExtras();
edittext1.setText(res.getString("value"));
}
}
按照上述的edittext2程序,但在startActivityForResult
答案 2 :(得分:0)
你应该在某个地方保存你的第一个值,所以有很多方法可以做到这一点。
例如,您可以将其保存在sharedpreferences中,或者您可以使用Activity_0的onSaveInstanceState()
方法来执行此操作,您可以阅读有关重新创建活动的this页面。
答案 3 :(得分:0)
您可以使用SharedPreferences保存可以在您想要显示的任何地方使用的数据。 要在SharedPreferences中存储数据,您可以在Activity_1和Activity_2中使用这些代码行。
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString("Name, n);
editor.commit();
要获取要在Activity_0中显示的数据,您可以使用以下行: -
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("Name", null);