回答
在活动A中获取字符串值并保存活动B的最佳方式是什么?
这通过取决于你的意思是“保存活动B”
如果你只是想“通”它B
并使用它有那么只是在Intent
Intent i = new Intent(..., ...);
i.putExtra("someKey", someString);
startActivity(i);
发
,并用东西把它在B
(onCreate()
之前没有)像
Intent intent = getIntent();
String foo = intent.getStringExtra("someKey");
如果你想要它真的坚持下去,那么SharedPreferences
会很好。文档中有一个很好的例子。
有不同的方式来处理这个问题,但你其实选择一个取决于你的需要,这个职位介绍,你可以拿得到了不同的方式。
http://www.doepiccoding.com/blog/?p=153
基本上有:
- 共享首
-Intent额外
- 应用子类
-SQLite数据库
他们都是EXP详细排列...
关心!
我成功地使用了SharedPreferences,但跳到下一个活动,它没有显示在textview中,只是为了进入另一个活动并返回到前一个可见:/ –
有“活动私有”首选项和“全局默认“共享首选项,请确保您使用的是整个应用程序范围的应用程序,提供的帖子详细说明了该问题... –
您可以在您的意图中存储不同的值。下面是谷歌官方的例子: Google
意向
在活动答:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
Intent intent = new Intent(this, ActivityB.class);
String message = "Your String";
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
而且在活动B:
Intent intent = getIntent();
String message = intent.getStringExtra(ActivityA.EXTRA_MESSAGE);
在活动答:
private static final String PREV_STRING_VALUE = "prevStringValue";
String value = "yourString";
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.edit().putString(PREV_STRING_VALUE, value).apply();
而且在活动B:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String value = sp.getString(ActivityA.PREV_STRING_VALUE, "DefaultValue");
或者一些其他的方法:
- SQLite Databases
- 一个Singleton类(但不总是建议,如果需要持久数据)
- 等
有很多方法可以传递数据。但是,哪种类型的实施需要总是取决于情况。如果你希望你的数据只传递给下一个activity/fragment,并且它是临时数据,那么就使用intents。
如果您在应用程序的进一步过程中需要数据,请使用SQLite数据库或SharedPreferences(如果它不是复杂的数据)。保存你的价值,你可以随时随地访问它。
你可以这样做一吨的方式..
一个与首
因此,例如
int myVal = 16;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putInt("MY_KEY",myVal).commit();
然后,在你的下一个活动
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.getInt("MY_KEY", 0); //Where 0 is the default value
你也可以我们Ë意图,正如你所说的
int myVal = 16
Intent intent = new Intent(); //Make your intent as you normally would
intent.putExtra("MY_KEY", myVal);
而在你的下一个活动的onCreate()
:
int myVal = getIntent().getExtras().getInt("MY_VALUE");
然而,这些都是基本的实现。正如Artoo Detoo所说,有很多不同的方法可以做到这一点。你可以用碎片,静态类,其他包等来做到这一点。这取决于情况 - 最好使用意图的方式,所以你不是无缘无故地将值存储在首选项中。如果您只需要将其从活动A转到活动B,则只需使用意向方法即可。如果你在很多不同的地方需要它,但不想跟踪它?使用首选项。
什么是“背景”? 如何在textview中显示结果? –
上下文可以是任何上下文。尝试使用“this”; 其余的,请查阅一些教程,因为您提出了很多以前已经回答过的基本问题。 https://developer.android.com/training/basics/firstapp/building-ui.html – VicVu
非常感谢所有帮助过我的人,我很高兴看到有一些重要的人仍然关心我们。简单的解决方案是在保存按钮的ID之间产生冲突,因为在所有活动中都拥有相同的ID。这就是! 谢谢大家!
简单的方式为店铺字符串值,然后在另一个活动恢复是: 1)在第一次活动开始的活动,最返回结果为字符串(之前创建像RETURN_DATA_AS_STRING最终int变量)
Intent intent = new Intent(getApplicationContext(), ReturningResultActivity.class);
startActivityintent(intent,RETURN_DATA_AS_STRING);
2)在用于存储数据的下一个活动使下一步骤:
Intent intent = new Intent();
intent.putExtra("SomeStringIdentifier", "this is resulting string");
setResult(RESULT_OK,intent);
3)在第一个活动手柄onActivityResult():
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case RETURN_DATA_AS_STRING: {
String thisIsResultStringFromAnotherActivity = data.getStringExtra("SomeStringIdentifier");
}
}
}
}
- 1. 存储从另一个活动调用的活动列表的最佳方式
- 2. 从另一个活动中更改活动设置的最佳方法
- 3. 检查另一个字符串是否存在的最佳方法是什么?
- 4. 最佳方式,如果一个字符串包含另一个字符串
- 5. 访问另一个活动的最佳方法
- 6. 发送一个字符串从一个活动到另一个
- 7. 传递字符串从一个方法到另一个方法
- 8. 从另一个字符串基于集合中提取字符串的最佳方法
- 9. 传递字符串[]从一个活动到另一个
- 10. 从Hashtable中替换字符串中字符的最佳方法?
- 11. 通过另一个文件中的字符串循环的最佳方法?
- 12. 创建包含另一个字符串的多个副本的字符串的最佳方法
- 13. Java从2个列表比较字符串的最佳方法
- 14. 从变量中分离两个字符串的最佳方法
- 15. 为Tableau保存活动和不活动项目的最佳方法
- 16. 从一个活动传递到另一个字符串积极活动
- 17. 如何将字符串从一个活动传递到另一个活动?
- 18. 将字符串值从一个活动传递给另一个活动
- 19. SQLite保存和遍历字符串数组的最佳方式
- 20. 处理连接字符串与另一个函数的最佳方法
- 21. python:在另一个字符串中查找名称的最佳方法
- 22. 从另一个活动访问方法
- 23. 在另一个活动中使用变量的最佳方式
- 24. 最佳(HEX)字符串比较方法
- 25. 在另一个字符串中查找字符串子集的最快方法?
- 26. 另一种方法从一个活动传递值到另一个活动
- 27. 为Android保存字符串的二维数组的最佳方法
- 28. 将字符串从活动发送到另一个活动的片段
- 29. 将字符串与另一个字符串进行比较的最佳方法是什么?
- 30. C#将字符串日期格式转换为另一个字符串的最佳方法?
我成功地使用了SharedPreferences,但跳到下一个活动,它没有显示在textview中,只是为了在另一个活动中返回并返回到前一个可见:/ –
看看我连接到的SharedPreferences示例。你只需打开首选项并从那里检索它,你可以在你的'TextView'中使用它 – codeMagic
可以给我一个例子吗? –