【问题标题】:transfer data between activity A to C?在活动 A 到 C 之间传输数据?
【发布时间】:2011-11-24 12:20:02
【问题描述】:

我想将一个整数值从活动 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"); 
               }
        }

【问题讨论】:

  • 我无法正确回答您的问题...告诉我是否正确:您有 3 个连续的活动,A、B 和 C。您希望 C 从 A 和 B 收集信息,这样对吗?
  • 您在活动 C 中获得双倍的价值?但您的代码显示您正在发送和盯着活动 B。请检查?
  • 我想将数据从 A 传递到 C ,,,,但是在途中我想从 B 获取另一个详细信息以在 C 中进行最终计算
  • @sttlcu 对,我想从 A 传递到 C

标签: android


【解决方案1】:

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

应用上下文的使用方式。

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

MyApplication appContext = (MyApplication) getApplicationContext();
appContext.data= YOUR DATA;

在任何其他活动中,您都可以以相同的方式访问该数据。

MyApplication appContext = (MyApplication) getApplicationContext();

你还需要添加

android:name=".MyApplication"

到清单文件中的“应用程序”标签。

【讨论】:

  • 那真是太好了,我会试试的(感谢印度人是最好的)
【解决方案2】:

嗯,我不知道你是怎么想的。在您的第一个代码示例(活动 A)中,您从不使用 i Intent 或 extras Bundle。您希望这些如何转移到活动 C?如果您在 Eclipse 中编码,您还应该收到“变量从不读取”警告。

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

【讨论】:

  • 我想将数据从 A 传递到 C ,,,,但是在途中我想从 B 获取另一个详细信息以在 C 中获得最终的总计算但是只要我可以就可以了'不要将它直接传递给 C ,谢谢
【解决方案3】:

这样做 在活动A中

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

在ActivityC中

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

【讨论】:

  • 我有 3 个活动 A B C ,,,我想将数据从 A 传输到 C
  • 将值从 A 传递到 B 并进行计算,然后将值从 B 传递到 C。
【解决方案4】:

您是否修改了 Manifest,添加了第二个活动?

【讨论】:

  • 他的应用程序没有崩溃。如果第二个 Activity 未添加到清单中,则应用程序将崩溃。
猜你喜欢
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多