0

私のAndroidアプリには、同じ画面でアイテムを削除するオプションを備えたリストビューがあります。削除ボタンはリスト ビューの下部にあり、項目を削除してリスト ビューを更新する関数が記述されています。この関数はonClick()、リスト ビューで呼び出されています。ここに問題があります。

削除ボタンonClickでは、最初にどのアイテムを削除するかを確認しました-

if (ListView.INVALID_POSITION != mListView.getSelectedItemPosition()) {
 //delete the selected item
}else{
 //do nothing
}

したがって、ユーザーが削除ボタンに触れるたびに、リスト ビューからフォーカスが削除され、リスト ビューの位置として無効になるため、アイテムは削除されません。

また、選択した項目の値を定数に保存し、リストビューのonItemSelected()メソッドで更新してから、削除ボタンの onClick から条件を削除しようとしました。これは機能しますが、別の問題が発生します-ユーザーが空の領域をタップすると、リストビューからフォーカスが移動します削除され、何も選択されていないように見えますが、削除ボタンを押すと、最後に選択されたアイテムが定数からのものであるため、削除されます。

これが私が直面している問題です。何をすべきか提案してください。

4

2 に答える 2

1

選択はキーボード モードでのみ有用であり、タッチ モードではオフになっているため、getSelectedItemPosition()常に信頼できるとは限りません。

この開発者ブログ エントリで、すべきこととすべきでないことを確認してください。

単一のボタンを使用する場合は、ListView選択モードを単一/複数に設定し、ボタンをクリックすると、チェックされた項目を取得して削除し、ListViewその後更新します。

于 2012-10-25T05:42:15.877 に答える
1

ボタンと次の呼び出し用に をonitemclickListener()実装して、アイテム ID を取得し、arrayadapter でクリックされたアイテムを削除してみてください。onclick()adapter.notifyDataSetChanged();

于 2012-10-25T05:47:33.297 に答える