在解析为下一个活动时添加数据

时间:2015-10-27 15:40:51

标签: android android-intent android-activity

我正在做一个应用程序,它在第一个活动中需要姓名和电话号码。 它应该保存这些值并解析为下一个活动,反之亦然。

例如:

  

在Actvity中,我保留了名字1& age1 - >保存并处于相同的活动中   再次插入name2& AGE2岁 - >保存

当我点击显示时,它应该显示另一个活动中保存的值。

这里我提到了两种情况,但可能会有10或20或N.

请提供我们可以通过哪种方式制作它?

1 个答案:

答案 0 :(得分:0)

  

如果您想在活动之间传递数据,那么您可以在下面使用   案例:

案例:1

您可以通过意图在活动之间传递数据。

在您当前的活动中,创建一个新的意图:

Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("variable_key","value");
startActivity(i);

然后在新的Activity中,检索这些值:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("variable_key");
}

这是为了在活动之间传递数据。

案例:2

你可以上课静态和公共Arraylist的Getter和Setter

示例:

Class GetterArrayList{

private static Map<String, ArrayList<String>> arrayList;

public static init(){
    if(arrayList== null)
        arrayList= new HashMap<String, ArrayList<String>>();
}

public static ArrayList<String> getStringList(String key){
    return arrayList.get(key);
}

public static void putStringList(ArrayList<String> value, String key){
    arrayList.put(key, value);
}
}

现在初始化您的ArrayList类:

GetterArrayList.init();

现在你可以在arraylist中添加值,如下所示:

ArrayList<String> listNew = new ArrayList<String>();
listNew .add("Your data");
GetterArrayList.putStringList(listNew , "newList");

你可以用钥匙把你的arraylist带到另一个班级。

for(String s:GetterArrayList.getStringList("newList")){

Log.d("My list",s);

}

案例:3

您可以使用共享偏好设置在活动之间传递数据。

link将帮助您获得共享偏好。

但这里有一些追踪者。

这是您设置数据的方法

 SharedPreferences settings = getSharedPreferences("prefs", MODE_PRIVATE);
    SharedPreferences.Editor prefEditor = settings.edit();
    prefEditor.putString("string_preference", "some_string");
    prefEditor.putInt("int_preference", 18);
    prefEditor.commit(); 

这就是你获取数据的方法:

SharedPreferences prefs = getSharedPreferences("prefs", MODE_PRIVATE); 

  String string_preference= prefs.getString("string_preference", "No name defined");//"No name defined" is the default value.
  int int_preference= prefs.getInt("int_preference", 0); //0 is the default value.

案例:4

如果您想传递多个数据,那么您可以使用本地存储,如SQLite数据库

以下是link供您参考。

如何在设备上保存数据,无论是临时文件,下载的应用资产,用户媒体,结构化数据还是其他内容。您可以查看有关它的更多信息here(请参阅保存数据部分)

将它们保存到SQlite数据库。