1

ListView の SelectedItem インデックスを取得したい。アイテムをタップしてアイテムを選択します。OnItemClick イベントは問題なく動作しますが、getSelectedItemPosition() は -1 を返します。

私は何を間違っていますか?

xml:

    <ListView
    android:id="@+id/lvAddEdtList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:choiceMode="singleChoice"
    android:drawSelectorOnTop="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:listSelector="?android:attr/listChoiceIndicatorSingle" />

活動中:

 lvAddEdtDel.setAdapter(namesList);
 lvAddEdtDel.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            lvAddEdtDel.setSelection(position);
            view.setSelected(true);

        }
    });

public void onClick(View v) {
if(lvAddEdtDel.getSelectedItemPosition() < 0 )
{ 
    Toast.makeText(getApplicationContext(), getString(R.string.ItemNotSelected),Toast.LENGTH_LONG).show();                          
}
});

私の英語でごめんなさい

4

1 に答える 1

4

私は自分で問題を解決しました。アダプターのレイアウトが選択されました: android.R.layout.simple_list_item_1;

私の場合、選択する必要がありました: android.R.layout.simple_list_item_single_choice;

タッチ モードでは getCheckedItemPosition を使用する必要があります

于 2013-08-20T15:52:55.813 に答える