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() によって、現在選択されているアイテムのテキストを取得できます。

または、独自の ArrayAdapter を作成する場合は、getItem(position) メソッドを実装できます。このメソッドは、アダプター アイテムに関するすべてのものを返すことができます。

于 2012-08-21T22:50:44.720 に答える
0

これにより、選択したテキストビューからテキストが取得され、トーストに表示されます。

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 に答える