2013-03-12 72 views
0

如果此问题已存在,但我无法找到任何对我的问题的答案,我非常抱歉。我的应用程序的想法是一个购物清单。用户可以看到食物列表并点击一个项目,它应该自动添加到列表中。onListItemClick将项目添加到另一个活动中的ListView

我已经有了一个ListView从原始文件夹中的XML文件生成。这是我的食物,我没有将它存储在SQLite数据库中。
我现在想要做的是,当我点击这个列表中的一个项目时,它被添加到另一个名为“ShoppingList.java”的Activity中的ListView。它不应该立即打开,所以用户可以添加更多项目。

现在,当我点击一个项目时,它会被添加到屏幕顶部同一Activity中的一个名为“selection”的TextView。 如何将一个项目从一个活动添加到另一个活动? 非常感谢您的帮助!

public class FishOk extends ListActivity { 
    TextView selection; 
    ArrayList<String> items=new ArrayList<String>(); 

    @Override 
    public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.foodok_list); 
    selection=(TextView)findViewById(R.id.selection); 

    try { 
    InputStream in=getResources().openRawResource(R.raw.fish); 
    DocumentBuilder builder=DocumentBuilderFactory 
          .newInstance() 
          .newDocumentBuilder(); 
    Document doc=builder.parse(in, null); 
    NodeList words=doc.getElementsByTagName("product"); 

    for (int i=0;i<words.getLength();i++) { 
    items.add(((Element)words.item(i)).getAttribute("value")); 
    } 

    in.close(); 
    } 

    catch (Throwable t) { 
    Toast 
    .makeText(this, "Exception: "+t.toString(), 2000) 
    .show(); 
    } 

    ListView lstView = getListView(); 
lstView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
lstView.setTextFilterEnabled(true); 

    setListAdapter(new ArrayAdapter<String>(this, 
           android.R.layout.simple_list_item_1, 
           items)); 
    } 

    public void onListItemClick(ListView parent, View v, int position, 
       long id) { 
    selection.setText(items.get(position).toString()); 
    } 

     public void onClick(View view) { 
      ListView lstView = getListView(); 

      String itemsSelected = "Selected items: \n"; 
      for (int i=0; i<lstView.getCount(); i++) { 
       if (lstView.isItemChecked(i)) { 
      itemsSelected += lstView.getItemAtPosition(i) + "\n"; 
     } 
    } 
      Toast.makeText(this, itemsSelected, Toast.LENGTH_LONG).show(); 

     } 
+1

你的问题不清楚。具体说明你做了什么?你想达到什么以及你面临什么问题。 – 2013-03-12 11:31:02

+0

对不起,我很抱歉。应用程序的整个想法是创建一个购物清单。用户可以看到食物清单并点击它,应该自动添加到购物清单中。到目前为止我所做的是创建一个列表。这些项目存储在xml文件中,而不是存储在sql数据库中。在这里,它被称为“fish.xml”。我现在想要的是,点击此列表中的项目时,该项目将添加到新活动的列表视图中。现在,当我点击一个项目时,它出现在顶部,名为“selection”的textview中,但那不是我想要的。我希望现在更清楚!谢谢! – mynameisbella 2013-03-12 15:05:04

回答

0

活动窗口,你可以把你UI的东西,所以用户可以与应用程序交互

现在,使用在整个应用程序中的活动数据,你必须使用或者收藏或数据库。我想你应该用收藏

  • 根据您的数据保持ArrayList或HashTable的

  • 将数据从一个活动传递给另一个活动。

OR

  • 保持一个单独的类更新数据在该类访问其他活动的数据。

我希望这可以帮助你。

+0

我会尽力的!非常感谢你 – mynameisbella 2013-03-13 17:33:03

+0

我仍然试图找出它,因为我是一个新手!要传递数据,使用“putExtra”方法是否正确? – mynameisbella 2013-03-16 11:42:17

+0

是使用putExtra的Intent来传递数据。 – 2013-03-18 05:28:41

1

添加到Activity这是对用户不可见,并且不存在的ListView的项目是没有意义的。如果没有太多数据,您应该有一个存储数据的地方,它可以是SQLite数据库,纯文本文件或SharedPreferences。当您点击当前Activity中的Button时,应该将信息存储到数据存储器中,然后在第二个Activity启动时检索它以填充ListView。希望这可以帮助。

相关问题