1

我有5个活动,比如活动AB,C,DE在android中通过intent传递数据

每个活动都有两个buttons是的&不,按钮有我想要传递给活动E的数据。

我需要做以下的事情:

- >当用户按下是/否A_activity的按钮,通过意图传递给活动E中的用户迁移到B_activity但数据。 同样在活动B用户按下是/否按钮,用户将移动到活动C,但数据传递到活动E等等。

我做了很多搜索,但找不到解决方案有没有办法做到这一点。

+0

您必须通过intent启动/移动到所需的活动并通过'SharedPreferences'传递数据检查:https://stackoverflow.com/questions/15466673/how-to-send-data-through-intent -in-android-without-opening-another-activity – Zakir

+0

@zakir我是编程新手,首先我会学习如何使用SharedPreferences传递数据。我会学习它,如果有任何问题,我会让你知道。但是有没有其他方式可以通过打算来实现。 – AliShah

+0

看起来像你传递一个活动意图的时刻,它将开始 - 没有是o避免它 - 或不知道它.. – Zakir

回答

-1

你的确可以通过一个意图传递数据返回到一个活动的onActivityResult()

动鄂启动活动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重新启动时检索或执行某些操作。所以它可以在任何类中做到很少或没有代码重复。只需检索和使用。而Intent需要在每个类中重复代码。它也很容易允许从任何活动转到任何活动,如A-> B-> E-> C,而不需要E-> A-> E-> B。只是想一想。

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); 

希望这有助于。