繁体   English   中英

如何将变量的数据从一个活动转移到另一个活动

[英]How to transfer the data of a variable from one Activity to another

我想将一个EditText的值或将一个Activity的变量的值传递给另一个Activity

我应该使用Handler执行以下操作吗?

如果使用Handler那我应该如何实现呢?

另一种方法是使用Intent Extras。

要发送数据,请使用类似以下的内容

Intent intent = new Intent(getBaseContext(), NewActivity.class);
intent.putExtra("Edit Text data", data);
startActivity(intent);

然后将其检索为

String s = getIntent().getStringExtra("Edit Text data");

您可以使用“共享首选项”将数据存储在前一个活动中,然后在子活动中检索它。

使用Shared Prefences,您可以像这样存储editText的值

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "Elena");
 editor.putInt("idName", 12);
 editor.commit();

现在,在另一个活动中,您可以将其检索为

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
  String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
  int idName = prefs.getInt("idName", 0); //0 is the default value.
}

观看视频教程 或者,您也可以查看本教程

在第一个活动中,您应该像这样对意图添加额外的参数:

EditText editText;
edittextIntent intent = new Intent(this, Second.class); 
intent.putExtra("arg",editText.getText()); 
startActivity(intent);

然后在第二个活动中,您将检索如下参数:

String passedArg = getIntent().getExtras().getString("arg");

如果使用Handler我认为仅需要使用hasExtra()进行简单验证

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
String value = editText.getText().toString().trim();
intent.putExtra("data", value);
startActivity(intent);

第二次活动

if (getIntent().hasExtra("value")) {
   String value = getIntent().getStringExtra("data");
   Log.d("MI_VALUE", value);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM