我是 Android 开发的新手。我有两个活动A和B。在活动A 中,我使用 xml 解析器来获取包含大约 10 个字符串的对象。我想将这些对象传递给活动B,并且应该有一个显示所有对象的列表视图。单击列表视图中的对象应显示 10 个字符串。
我不确定我是否必须使用 SQLite 数据库,或者我是否只能使用 SharedPreferences?或者我什至可以将它存储在内部存储器中吗?
即使我杀死了应用程序,也应该保存对象。
希望有人能给我一些提示,谢谢!
我是 Android 开发的新手。我有两个活动A和B。在活动A 中,我使用 xml 解析器来获取包含大约 10 个字符串的对象。我想将这些对象传递给活动B,并且应该有一个显示所有对象的列表视图。单击列表视图中的对象应显示 10 个字符串。
我不确定我是否必须使用 SQLite 数据库,或者我是否只能使用 SharedPreferences?或者我什至可以将它存储在内部存储器中吗?
即使我杀死了应用程序,也应该保存对象。
希望有人能给我一些提示,谢谢!
这可能会帮助你
您可以随意传递字符串数据 [1] 使用 Intent [2] 使用共享偏好
喜欢 [1]在您的第一个 ActivityA 中的意图
Intent myintent= new Intent(FirstActivity.this,SecondActivity.class);
myintent.putExtra("Name1", "your String");
myintent.putExtra("Name2", "your String");
myintent.putExtra("Name3", "your String");
myintent.putExtra("Name4", "your String");
startActivity(myintent);
在第二个活动B
Intent myintent = getIntent();
if(null!=myintent.getExtras()){
String Name1 = myintent.getExtras().getString("Name1");
String Name2 = myintent.getExtras().getString("Name2");
String Name3 = myintent.getExtras().getString("Name3");
String Name4 = myintent.getExtras().getString("Name4");
Toast.makeText(getApplicationContext(),""+Name,12).show();
}
else
{
Toast.makeText(getApplicationContext(),"No Recor Here..",12).show();
}
像您的第一个 ActivityA 中的 SharedPreferences[2]
Intent myintent= new Intent(FirstActivity.this,SecondActivity.class);
SharedPreferences spref = this.getSharedPreferences("mynotifyid", MODE_WORLD_WRITEABLE);
SharedPreferences.Editor spreedit = spref.edit();
spreedit.putString("Name1", str1.toString());
spreedit.putString("Name2", str2.toString());
spreedit.putString("Name3", str3.toString());
spreedit.putString("Name4", str4.toString());
spreedit.commit();
startActivity(myintent);
在你的第二个活动B
SharedPreferences spref = context.getSharedPreferences("mynotifyid", Context.MODE_WORLD_WRITEABLE);
String str1 = spref.getString("Name1","");
String str2 = spref.getString("Name2","");
String str3 = spref.getString("Name3","");
String str4 = spref.getString("Name4","");
为了您的对象保存目的,使用 SharedPreferences
让这些对象实现接口Serializable
,这样您就可以使用一个可能的这个小(!)示例将对象传递给另一个 ActivityIntent
可以帮助您:
public class MyModel implements Serializable {
...
}
public A extends Activity {
public void onCreate(Bundle savedInstanceBundle) {
...
//fetchData
...
MyModel data = new MyModel(fetchedData);
Intent intent = new Intent(this, B.class);
intent.putExtra("KEY", data);
startActivity(intent);
}
}
public B extends Activity {
public void onCreate(Bundle savedInstanceBundle) {
Bundle extras = getIntent().getExtas();
MyModel data = (MyModel) extras.getSerializable("KEY");
...
//handle data
...
}
}
对于这 10 个字符串,我不会使用数据库。SharedPreferences 易于使用,有很多示例,可以满足您的需求。如果稍后需要无字符串,则可以使用内部存储器(二进制模式),但现在没有理由,恕我直言。