一个活动从android中的两个活动中获取数据

时间:2016-04-12 04:47:52

标签: android

我想实现该活动从android中的两个活动获取数据。详情:

总共有三项活动。 Activity_0有两个EditTextsEditText_1EditText_2。当我点击EditText_1时,它会链接到Activity_1并选择数据,然后返回Activity_0并将值传递给EditText_1,当我点击EditText_2时,链接到Activity_2并选择数据,然后返回Activity_0并将值传递给EditText_2。问题是,当我点击第二个Activity_0时,EditText会刷新,所以每次点击两次时我只会得到一个值。

4 个答案:

答案 0 :(得分:0)

呀...有可能......你必须将edittext onClickListener的意图与putExtra

一起传递
Intent i = new Intent(Activity_0.this, Activity_1.class); 
i.putExtra("xyz", xyz);

答案 1 :(得分:0)

我可以告诉你的最简单方法是startActivityForResult

  1. 在edittext1 startActivityForResult(new Intent(context, EditText1SelectActivity.class), 1);

  2. 的onClick中写下此内容
  3. EditText1SelectActivity

    中选择任何内容时设置值
    Intent intent = new Intent();
    intent.putExtra("value", "selected value");
    setResult(Activity.RESULT_OK, intent);
    finish();
    
  4. 并再次在您的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"));
        }
    }
    
  5. 按照上述的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);