0

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

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

现在,当我单击一个项目时,它会添加到屏幕顶部同一活动中名为“选择”的 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(); 

        }
4

2 回答 2

1

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

于 2013-03-12T11:27:48.013 回答
0

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

现在,要在整个应用程序的活动中使用数据,您必须使用 Collections 或 Database

但根据您的要求,我认为您应该使用Collections

  • 根据您的数据维护一个 Arraylist 或 HashTable 。

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

或者

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

我希望这可以帮助你。

于 2013-03-13T05:11:25.627 回答