我有5项活动,比如活动$file.FullName
,$file.Delete()
,A
,B
和C
。
每个活动有两个D
是&不,按钮具有我想要传递给活动E
的数据。
我需要做以下事情:
- >当用户按下A_activity的是/否按钮时,用户移动到B_activity但数据通过意图传递给活动E. 类似地,在活动B用户按是/否按钮,用户将移动到活动C但数据传递到活动E,依此类推。
我已经做了很多搜索,但无法找到解决方案有没有办法做到这一点。
答案 0 :(得分:0)
使用SharedPreferences类传递数据:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("key", "Value");
editor.commit();
然后在活动E:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
String value = sharedPref.getString("key", defaultValue);
希望这有帮助。
答案 1 :(得分:-1)
您确实可以通过意图将数据传回活动的onActivityResult()
活动E开始活动A
final int RESULT_FOR_CLASS_DATA = 12; // pick a number to use
String returnedData;
Intent intent = new Intent(this, ActivityA.class);
startActivityForResult(intent, RESULT_FOR_CLASS_DATA);
A中的示例(从E开始)
Intent data = new Intent();
data.putExtra("ReturnData", dataToReturn);
setResult(RESULT_OK, data);
finish(); // returning to Activity E
E
的onActivityResult()示例if (requestCode == RESULT_FOR_CLASS_DATA) {
returnedData = data.getStringExtra("ReturnData"));
}
有很多方法可以实现移动数据,所以这只是一个例子。
要推荐替代方案,请使用Handler代替此方法。假设由于返回Activity被暂停,处理程序可能需要在单独的类或全局静态变量等中设置数据,并在Activity restart或其他内容上检索。所以它可以在任何类中进行很少甚至没有代码重复。只需检索并使用。而Intent需要在每个类中进行代码重复。它也将容易地允许从任何活动到诸如A-> B-> E-> C的任何活动,而不是要求E-> A-> E-> B.只是想一想。