Java onListItem在另一个活动中单击将项目添加到ListView

Java onListItem在另一个活动中单击将项目添加到ListView,java,android,eclipse,Java,Android,Eclipse,如果这个问题已经存在,我很抱歉,但是我找不到任何问题的答案。我的应用程序的想法是一个购物清单。用户可以看到一个食物列表,点击一个项目,它会自动添加到一个列表中 我已经有了一个从原始文件夹中的xml文件生成的ListView。这是我的食物,我没有将它存储在SQLite数据库中。 我现在想做的是,当我点击这个列表中的一个项目时,它会被添加到另一个名为“ShoppingList.java”的活动的列表视图中。它不应该立即打开,因此用户可以添加更多项目 现在,当我点击一个项目时,它被添加到屏幕顶部同一活

如果这个问题已经存在,我很抱歉,但是我找不到任何问题的答案。我的应用程序的想法是一个购物清单。用户可以看到一个食物列表,点击一个项目,它会自动添加到一个列表中

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

现在,当我点击一个项目时,它被添加到屏幕顶部同一活动中名为“选择”的文本视图中。 如何将项目从一个活动添加到另一个活动? 非常感谢你的帮助

    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(); 

        }
公共类FishOk扩展了ListActivity{
文本视图选择;
ArrayList items=新建ArrayList();
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.foodok_列表);
selection=(TextView)findViewById(R.id.selection);
试一试{
InputStream in=getResources().openRawResource(R.raw.fish);
DocumentBuilder=DocumentBuilderFactory
.newInstance()
.newDocumentBuilder();
Document doc=builder.parse(in,空);
NodeList words=doc.getElementsByTagName(“产品”);

对于(int i=0;i向
活动的
列表视图
中添加一个对用户不可见且还不存在的项目是没有意义的。您应该有一个存储数据的地方,它可以是SQLite数据库、纯文本文件,或者
共享引用
,如果没有太多数据。当您单击
B时按钮
在当前的
活动中
您应该将信息存储到数据存储器中,然后在第二个
活动开始时检索信息以填充
列表视图。希望这能有所帮助。

活动是一个窗口,您可以在其中放置UI内容用户可以与应用程序交互

现在,对于在整个应用程序的活动中使用数据,您必须使用集合或数据库

但是根据您的要求,我认为您应该使用集合

  • 根据您的数据维护Arraylist或HashTable

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

  • 维护一个单例类更新该类中的数据访问其他活动中的数据。

我希望这对您有所帮助。

您的问题还不清楚。请具体说明您做了什么?您想要实现什么以及您面临什么问题。很抱歉没有具体说明。该应用程序的整个思想是创建一个购物清单。用户可以看到一个食物清单,单击它,它应该会自动添加到购物清单中。我想到目前为止,我所做的是创建一个列表。这些项目存储在一个xml文件中,而不是sql数据库中。在这里,它被称为“fish.xml”。我现在希望,单击此列表中的一个项目时,该项目被添加到一个新活动的列表视图中。现在,当我单击一个项目时,它会显示在顶部,在一个名为“选择”的文本视图中,但这不是我想要的。我希望它现在更清晰!谢谢!我仍在努力解决它,因为我是一个新手!为了传递数据,使用“putExtra”方法是否正确?非常感谢!我会继续尝试,并会给你一个“接受”的答案!