我想将一个整数值从活动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");
}
}
答案 0 :(得分:1)
i
Intent或extras
Bundle。您如何期望将这些转移到活动C?如果您在Eclipse中编写代码,那么您还应该获得“变量永不读取”警告。
你应该首先将值传递给Activity B,然后从那里传递给Activity C.没有办法直接传递这些值(除了将它们存储到文件/数据库中,但对于这个用例来说太复杂了) )。
答案 1 :(得分:1)
您可以使用应用程序上下文来保存数据。
使用应用上下文的方式。
扩展'Application'类并添加一个属性来保存不同活动所需的不同数据。因此,在您的活动中,您可以访问应用程序上下文并获取数据。由于应用程序上下文是单例,因此它将是每个活动中的相同实例。
MyApplication appContext = (MyApplication) getApplicationContext();
appContext.data= YOUR DATA;
在任何其他活动中,您都可以以相同的方式访问该数据。
MyApplication appContext = (MyApplication) getApplicationContext();
您还需要添加
android:name=".MyApplication"
清单文件中的'application'标记。
答案 2 :(得分:0)
这样做 在活动
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 :(得分:-2)
您是否修改了Manifest,添加了第二个活动?