7

SelectedItemのインデックス(.getSelectedItemPosition())を知りたい場合は、ListViewのsetOnItemSelectedListenerとsetOnItemClickListenerをカスタマイズする必要があることをこのサイトで読みました。これが私が行うことですが、SekectedItemの位置は保存されません。代わりに、常に-1...があります。

私がやりたいのは、アイテムを選択してボタンをクリックすることで、リストからアイテムを削除する方法をユーザーに提供することです。

以下のコードを参照してください:

    listViewPeople.setOnItemClickListener(new ListView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> a, View v, int i, long l) {
            try {
                // Remembers the selected Index
                listViewPeopleId = listViewPeople.getSelectedItemPosition();
            }
            catch(Exception e) {
                System.out.println("Nay, cannot get the selected index");
            }
        }
    });

    listViewPeople.setOnItemSelectedListener(new ListView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> a, View v, int i, long l) {
            try {
                // Remembers the selected Index
                listViewPeopleId = listViewPeople.getSelectedItemPosition();
                System.out.println("Yay, set the selected index " + listViewPeopleId);
            }
            catch(Exception e) {
                System.out.println("Nay, cannot get the selected index " + listViewPeopleId);
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            try {
                // Remembers nothing selected
                listViewPeopleId = -1;
                System.out.println("Yay, set that nothing is selected " + listViewPeopleId);
            }
            catch(Exception e) {
                System.out.println("Nay, cannot set that nothing is selected " + listViewPeopleId);
            }
        }
    });

どうしたの??

ご協力ありがとうございました!

クリストフ

4

1 に答える 1

10

実行する代わりにlistViewPeople.getSelectedItemPosition();、intiパラメーターを使用してインデックスを取得してみてください。

于 2010-06-03T15:35:27.943 に答える