我是Android开发的新手。我有两项活动 A 和 B 。在活动 A 中,我使用xml解析器来获取每个包含大约10个字符串的对象。我想将这些对象传递给活动 B ,并且应该有一个列表视图显示所有对象。单击列表视图中的对象应显示10个字符串。
我不确定是否必须使用SQLite数据库,或者我是否只能使用SharedPreferences? 或者我甚至可以将它存储在内部存储器中?
即使我杀了应用程序,也应该保存对象。
希望有人能给我一些提示,谢谢!
答案 0 :(得分:2)
这可能有助于你
你可以随心所欲地传递你的字符串数据[1]使用Intent [2]使用Share Prefrence
像[1]意图一样 在你的第一个活动A 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);
第二个ActivityB中的
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();
}
像SharedPreferences [2] 在你的第一个活动A
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);
在你的第二个ActivityB中
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
答案 1 :(得分:1)
让这些对象实现接口Serializable
,以便您可以使用Intent
将对象传递给另一个Activity
也许这个小(!)示例可以帮助您:
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
...
}
}
答案 2 :(得分:0)
对于那10个字符串,我不会使用数据库。 SharedPreferences易于使用,很多例子都会处理您的需求。 如果以后需要一个无字符串,那么你可以使用内部存储器(二进制模式),但现在没有理由,imho。