protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
int selection = position;
switch (selection)
{
case 0:
{
String toast=" 1 clicked";
DisplayToast(toast);
}
break;
case 1:
{
String toast=" 2 clicked";
DisplayToast(toast);
}
break;
}
}
这是我在List活动中用于OnListItemClick()的代码。
我的问题是我的List项目是动态填充的,因此我不知道列表中有多少项目。
在那种情况下,我无法使用switch语句。如何区分动态更改列表中单击的项目。
答案 0 :(得分:1)
像这样设置一个onItemClickListener:
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
Toast.makeText(MainActivity.this, adapter.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();
}
});
因此,您可以通过getItemAtPosition(position).toString()获取当前所选项目的文本。
或者如果您自己创建ArrayAdapter,则可以实现getItem(position)方法,该方法可以返回任何有关适配器项的信息。
答案 1 :(得分:0)
这将从所选的文本视图中获取文本并将其显示在Toast中。
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
String toast= ((TextView)v).getText();
DisplayToast(toast);
}
答案 2 :(得分:0)
以下是代码
String toast = " " + ++position + " clicked";
DisplayToast(toast);