2011-12-25 107 views
0

我得到了下面的代碼。我想在點擊列表上的單個項目時開始活動。但是,當我什麼也沒做。我也希望每個項目都引用相同的intent calld「com.whiskey.app.view」併發送一個由sql查詢給出的id變量。我幾次瀏覽代碼,但我似乎無法使它工作。Android:獲取listview onClick到新意圖

public class MainScreen extends Activity implements OnItemClickListener{ 

    public ListView whiskeylist; 
    public String[] DataArryWhiskey; 

    .... 

    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Start db view of whiskey 

    DBConfig whiskeyrows = new DBConfig(this); 


    whiskeyrows.open(); 
     DataArryWhiskey = whiskeyrows.getDataInArray(); 
    whiskeyrows.close(); 


    whiskeylist = (ListView)findViewById(R.id.listofWhiskey); 
    whiskeylist.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , DataArryWhiskey)); 


    // End db view of whiskey 

}// end onCreate 


// catch itemclick event from the main list. 
public void onItemClick(AdapterView av, View v, int position, long l) 
{ 
    // TODO Auto-generated method stub 


    String[] listitem_data = DataArryWhiskey[position].split(","); // break passed sting into a array comma seperated 

    Bundle passingitems = new Bundle(); 
    passingitems.putString("whiskey_id", listitem_data[0]); 

    Intent currentintent = new Intent("com.wiskey.app.view"); 
    currentintent.putExtras(passingitems); 

    startActivity(currentintent); 

} 
+0

是您onItemClick什麼都叫? – 2011-12-25 23:07:14

回答

1

儘管上述答案的工作,我認爲在你目前執行的問題是,你不叫:

whiskeylist.setOnItemClickListener(this); 

我想這應該做的工作!

1

如果您activity只有cotains這個ListView,你應該使用ListActivity。 這些是專門爲只包含列表的活動製作的。

ListActivities的方法之一是onListItemClick。正如名稱所言,這是專門用於點擊列表中的項目的。 您的代碼不起作用的原因是因爲onItemClick一般不用於點擊Lists,而是用於點擊Activities中的其他對象。

嘗試基於這裏的樣品更改代碼:ListActivity

1

ListActivity派生類和刪除implements OnItemClickListener

把下面的代碼在onCreate

setListAdapter(whiskeylist); 

再有這樣的作爲onItemClick

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 

    String[] listitem_data = DataArryWhiskey[position].split(","); // break passed sting into a array comma seperated 

    ...your code.... 
    startActivity(currentintent); 
} 

另請參考:

ListActivity ListView