2013-03-12 99 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。希望這可以幫助。