我对android还比较陌生,但我有一个简单的问题。
我在一个页面上有一个列表,其中可能有无限数量的行,这些行将由数据库填充。这些活动将根据其类型(如客户等)转到不同的活动。是否可以根据用户点击的活动将用户发送到特定的活动?
我已经看到了一些基于开关/案例的解决方案,但是如果您有一个有限项列表,并且您事先知道这些项的名称,那么似乎可以使用这个方法。
所以,我要说的是,如果我使用switch/case解决方案,应用程序如何知道哪个按钮指向哪个案例?这需要在列表本身或数据库中定义吗?
我目前不能提供任何代码,因为它不是那么远的发展,我也在保密协议下的项目!
最佳答案
您可以在setonitemclicklistener()
中执行此操作。每当单击列表视图的任何行时都会调用此函数。单击的项目的位置/行号也传递给此函数。
由于使用数据库填充列表,因此可以执行以下操作:
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
//SEE THIS FUNCTION
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
/*
"position" is the position/row of the item that you have clicked
Query your table. Then move the cursor to "position" and get the
details. THen based on the details call a new activity.
*/
Cursor cur=db.query("your table name",null,null,null,null,null.null);
cur.moveToPosition(position); // see the argument int position
//Extract details from this row,process it and send to the respective activiy
});