我正在做一个应用程序,它在第一个活动中需要姓名和电话号码。 它应该保存这些值并解析为下一个活动,反之亦然。
例如:
在Actvity中,我保留了名字1& age1 - >保存并处于相同的活动中 再次插入name2& AGE2岁 - >保存
当我点击显示时,它应该显示另一个活动中保存的值。
这里我提到了两种情况,但可能会有10或20或N.
请提供我们可以通过哪种方式制作它?
答案 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数据库。