我hava得到了下面的代码。我想在点击列表中的单个项目时启动活动。但是当我什么也没发生的时候。我也希望每个项目都引用相同的intent calld“com.whiskey.app.view”并发送一个由sql查询给出的id变量。我几次浏览代码,但似乎无法让它工作。
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 :(得分:2)
如果您的activity
仅包含此ListView
,则应使用ListActivity
。
这些是专门为仅包含列表的活动而创建的。
ListActivities
的其中一种方法是onListItemClick
。正如名称所示,那个专门用于点击列表中的项目。
您的代码无效的原因是onItemClick
通常不会用于点击Lists
,而是用于点击Activities
中的其他对象。
尝试根据以下示例更改代码:ListActivity
答案 1 :(得分:2)
从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);
}
另请参阅:
答案 2 :(得分:2)
虽然上述答案有效,但我认为您当前实施中的问题是您不打电话:
whiskeylist.setOnItemClickListener(this);
我认为这应该做的工作!
答案 3 :(得分:1)
您尚未为点击操作添加侦听器,请尝试添加:
whiskeylist.setOnItemClickListener(this);
在onCreate 结束时
您也可以在此处编写匿名OnItemClickListener: http://developer.android.com/resources/tutorials/views/hello-listview.html