Android:将数据从一个活动传递到ListView中的另一个活动
我正在制作购物清单应用程序。Android:将数据从一个活动传递到ListView中的另一个活动
在我的第一个Activity
我有一个ListView
,在我的第二个活动中,我可以添加新的杂货店的详细信息。我想在第一个Activity
的ListView
中显示这些详细信息。现在我怎样才能将数据从第二个Activity
传递到第一个Activity
的ListView
。
在第二个活动我通过与嘴硬代码数据:
EditText editName = (EditText) findViewById(R.id.txtName);
EditText editQty=(EditText) findViewById(R.id.txtqty);
String name= editName.getText().toString();
String quantity=editQty.getText().toString();
Intent returnIntent = new Intent();
returnIntent.putExtra("name",name);
returnIntent.putExtra("quantity",quantity);
setResult(RESULT_OK,returnIntent);
finish();
而且在第一个活动,我用的是意向如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
Bundle b = data.getExtras();
if (b!= null){
String strName=data.getStringExtra("name");
String strQty=data.getStringExtra("quantity");
System.out.println(strName);
System.out.println(strQty);
}
}
if (resultCode == RESULT_CANCELED) {
//Write your code if there's no result
}
}
请帮我解决这个问题。提前致谢。
我建议你使用SQLite解决你的问题,当你插入新的杂货店信息时,只需创建一张表并在数据库表中插入这些详细信息即可。现在,当您想要显示新添加的细节时,只需运行“select”查询并设置您的ListView适配器即可。
如果每次你不想设置你的适配器,那么只需要维护一个布尔型静态变量,如isGroceryAdded。如果杂货店的详细信息成功添加,那么在那个时候将该布尔变量设置为“true”。然后检查你的第一个活动是否为真,然后再次运行查询并在设置适配器后再次设置适配器,然后再次将该变量设置为false。
没有一些代码,我的建议是创建一个实现可序列化的模型类,并将其作为结果传递给第一个Activity(注意,为此,第二个活动必须以startActivityForResult()开始)。
对于类似的问题,请看看https://*.com/a/14333555/1082942
这是一个解决方案,在大多数情况下工作的总体概述。考虑到你没有提供特定于你的情况的代码,这可能或可能不是你所需要的。
1)要恢复第一个活动,请将第二个活动的意向发送到第一个包含意向附加项(键值对)的杂货详情的活动。
2)覆盖第一个活动的onResume()方法来处理传入的意图以提取所需的数据。
3)然后,您需要更新适配器所使用的数据,并附加此意向附加信息。
4)然后,你需要你的适配器上调用notifyDataSetChanged(),所以它会重建自己的看法与更新的信息
希望对您有所帮助。
发表了一些代码。 – 2014-09-03 04:08:05
从您的详细信息视图活动的手段传递数据到第一个活动listview? – Piyush 2014-09-03 04:40:57
你在哪里保存杂货的细节? Sqlite或Web服务? – 2014-09-03 05:33:10