如何将数据从活动A1发送到活动A3

时间:2013-08-22 05:39:49

标签: android android-activity

这是方案..

有3项活动.. A1(第1活动),A2(第2活动),A3(第3活动)。 在这种情况下,活动的流程应来自 A1-> A2 - > A3

在A1中,我正在从服务器进行初始数据检索,并希望将数据直接发送到第3个活动,即直接发送到A3(但我不想使用A1触发A3)

即。从A2启动活动A3时,我想使用A1发送的数据

显而易见的解决方案(使用普通的java方式)使用常见的数据结构,如Hashmap / List / ..从A1插入数据并在A3中检索此数据。我想知道是否有使用Android API的其他替代解决方案

由于

6 个答案:

答案 0 :(得分:1)

使用SharedPreference。保存在A1中并在A3中检索。

<强>初始化

SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode
Editor editor = pref.edit();

存储数据

editor.putBoolean("key_name", true); // Storing boolean - true/false
editor.putString("key_name", "string value"); // Storing string
editor.putInt("key_name", "int value"); // Storing integer
editor.putFloat("key_name", "float value"); // Storing float
editor.putLong("key_name", "long value"); // Storing long

editor.commit(); // commit changes

检索数据

// returns stored preference value
// If value is not present return second param value - In this case null
pref.getString("key_name", null); // getting String
pref.getInt("key_name", null); // getting Integer
pref.getFloat("key_name", null); // getting Float
pref.getLong("key_name", null); // getting Long
pref.getBoolean("key_name", null); // getting boolean

删除数据

editor.remove("name"); // will delete key name
editor.remove("email"); // will delete key email
editor.commit(); // commit changes

清算存储空间

editor.clear();
editor.commit(); // commit changes

答案 1 :(得分:0)

有两种方法可以完成工作。

1)您可以在intent1的帮助下将值传递给activity2。然后再从意图中将其传递给activity3。

2)或者你可以将activity1中的变量(你想要在activity3中的值)初始化为static,你可以在activity3中使用它们。

答案 2 :(得分:0)

您使用两种方式连接数据以便在不同的类中进行访问...

=&GT;第一种方法是使用putExtra()函数传递Intent数据.....    show here了解如何工作......

=&GT;第二种方法是使用一个公共类并存储数据,以便使用来自任何其他类的数据...    关于如何工作的show here ....

这两种方式都可以连接不同的类来获取多余的公共数据...

答案 3 :(得分:0)

当你从A1调用A2时,你可以使用putExtra附加数据,你可以在A2中搜索,然后当你从A2调用A3时,你可以再次使用putExtra来处理数据。再次,您可以使用getExtra检索数据。

答案 4 :(得分:0)

在您的模型bean类中创建并存储您的活动1值

打开活动3时,从模型bean类中获取值并将值设置为activity3

答案 5 :(得分:0)

您可以使用Bundle将数据从一个Activity类传递到其他Activity类。像这样

Bundle bundle = new Bundle();
bundle.putString("Id", videoChannelId);
bundle.putString("C/V", "C");
bundle.putString("mode", "ch");
bundle.putString("code", "LiveTV");
bundle.putString("urlcount", "2");
Intent intent = new Intent(First.this,Second.class);
intent.putExtras(bundle);
startActivity(intent);

通过给出包ID

来获取第二个Activity中的数据
 String id;
 Bundle  getBundle = this.getIntent().getExtras();

 id= getBundle.getString("Id") 
  etc......