0
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;
    }
}

这是我在列表活动中用于我的 OnListItemClick() 的代码。

我的问题是我的列表项是动态填充的,因此我不知道列表中有多少项。

在那种情况下我不能使用 switch 语句。所以。如何区分在动态变化的列表中单击了哪个项目。

4

3 回答 3

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()来获取你当前选中的item的文本。

或者,如果您制作自己的 ArrayAdapter,则可以实现 getItem(position) 方法,该方法可以返回有关您的适配器项目的任何内容。

于 2012-08-21T22:50:44.720 回答
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);
}
于 2012-08-21T22:45:49.377 回答
0

以下是代码

String toast = " " + ++position + " clicked";
DisplayToast(toast);
于 2012-08-21T22:46:26.850 回答