2014-09-03 158 views
0

我正在制作购物清单应用程序。Android:将数据从一个活动传递到ListView中的另一个活动

在我的第一个Activity我有一个ListView,在我的第二个活动中,我可以添加新的杂货店的详细信息。我想在第一个ActivityListView中显示这​​些详细信息。现在我怎样才能将数据从第二个Activity传递到第一个ActivityListView

在第二个活动我通过与嘴硬代码数据:

  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 
      } 
     } 

请帮我解决这个问题。提前致谢。

+0

发表了一些代码。 – 2014-09-03 04:08:05

+0

从您的详细信息视图活动的手段传递数据到第一个活动listview? – Piyush 2014-09-03 04:40:57

+0

你在哪里保存杂货的细节? Sqlite或Web服务? – 2014-09-03 05:33:10

回答

0

我建议你使用SQLite解决你的问题,当你插入新的杂货店信息时,只需创建一张表并在数据库表中插入这些详细信息即可。现在,当您想要显示新添加的细节时,只需运行“select”查询并设置您的ListView适配器即可。

如果每次你不想设置你的适配器,那么只需要维护一个布尔型静态变量,如isGroceryAdded。如果杂货店的详细信息成功添加,那么在那个时候将该布尔变量设置为“true”。然后检查你的第一个活动是否为真,然后再次运行查询并在设置适配器后再次设置适配器,然后再次将该变量设置为false。

0

没有一些代码,我的建议是创建一个实现可序列化的模型类,并将其作为结果传递给第一个Activity(注意,为此,第二个活动必须以startActivityForResult()开始)。

对于类似的问题,请看看https://stackoverflow.com/a/14333555/1082942

0

这是一个解决方案,在大多数情况下工作的总体概述。考虑到你没有提供特定于你的情况的代码,这可能或可能不是你所需要的。

1)要恢复第一个活动,请将第二个活动的意向发送到第一个包含意向附加项(键值对)的杂货详情的活动。

2)覆盖第一个活动的onResume()方法来处理传入的意图以提取所需的数据。

3)然后,您需要更新适配器所使用的数据,并附加此意向附加信息。

4)然后,你需要你的适配器上调用notifyDataSetChanged(),所以它会重建自己的看法与更新的信息

希望对您有所帮助。

相关问题