onListItemClick用于动态更改列表项

时间:2012-08-21 22:29:03

标签: android android-listview

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语句。如何区分动态更改列表中单击的项目。

3 个答案:

答案 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);