Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在活动A到C之间传输数据?_Android - Fatal编程技术网

Android 在活动A到C之间传输数据?

Android 在活动A到C之间传输数据?,android,Android,我想把一个整数值从活动A传递到B,再传递到C。A包含卡路里,B指定你如何锻炼,C以默认方式计算你的最终卡路里摄入量;但数据不会传输到活动C Intent i = new Intent(getApplicationContext(), ActivityC.class); Bundle extras = new Bundle(); i.putExtras(extras); extras.putDouble("clllo", calories); startActivity(new Intent(

我想把一个整数值从活动A传递到B,再传递到C。A包含卡路里,B指定你如何锻炼,C以默认方式计算你的最终卡路里摄入量;但数据不会传输到活动C

Intent i = new Intent(getApplicationContext(), ActivityC.class);

Bundle extras = new Bundle();
i.putExtras(extras); 
extras.putDouble("clllo", calories);
startActivity(new Intent("com.ti7a.fitness.ActivityB"));
然后在activityC中:

double value=1.54354;

Bundle extras = getIntent().getExtras();

if(extras!=null){

value = extras.getDouble("clllo"); 
               }
        }

我不知道你是怎么想出来的。在您的第一个代码示例(活动A)中,您从未使用
i
意图或
extras
捆绑包。您希望如何将这些转移到活动C?如果您在Eclipse中编码,还应该得到一个“variable never read”警告


您应该首先将值传递给活动B,然后再从活动B传递给活动C。没有办法直接传递这些值(除了将它们存储到文件/数据库,但这对于本用例来说太复杂了)。

您是否修改了清单,添加了第二个活动


您可以使用应用程序上下文保存数据

使用应用程序上下文的方法

扩展“应用程序”类并添加一个属性来保存不同活动中需要的不同数据。因此,在您的活动中,您可以访问应用程序上下文并获取数据。由于应用程序上下文是一个单例,所以它在每个活动中都是相同的实例

MyApplication appContext = (MyApplication) getApplicationContext();
appContext.data= YOUR DATA;
在任何其他活动中,您都可以以相同的方式访问该数据

MyApplication appContext = (MyApplication) getApplicationContext();
您还需要添加

android:name=".MyApplication"
添加到清单文件中的“应用程序”标记。

是否执行此操作 在活动中

Intent myIntent = new Intent(A.this, C.class);
myIntent.putExtra("clllo", calories);
startActivity(myIntent);
在活动中

Intent mIntent = getIntent();
double cal = mIntent.getDoubleExtra("clllo", 1.54354);

我无法正确理解你的问题。。。告诉我我是否正确:你有3个连续的活动,A,B和C。你想让C从A和B收集信息,对吗?你在活动C中得到了double的值?但您的代码显示您正在发送并启动活动B。请检查?我想将数据从A传递到C,,,,,但在途中,我想从B获得另一个详细信息,以获得最终计算结果C@sttlcu是的,我想通过一个到CHis的应用程序并没有崩溃。如果第二个活动未添加到清单中,则应用程序将崩溃。我想将数据从A传递到C,,,,但在途中,我想从B获取另一个详细信息,以获得C中的最终总计算,但这是可以的,只要我不能将其直接传递到C,,,谢谢,这真的很好,我将尝试它(谢谢印度人是最好的)我有3个活动A B C,,,我想将数据从A传输到Cpass,将值从A传递到B,进行计算,然后将值从B传递到C。