私はListView
にありPopupWindow
ます。このPopupWindow
ように初期化されます
window.setContentView(root);
window.setTouchable(true);
window.setFocusable(true);
window.setOutsideTouchable(true);
window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
次にListView
:
fileList = (ListView) root.findViewById(R.id.explorer_list);
fileList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
fileList.setSelector(android.R.drawable.screen_background_light_transparent);
fileList.setOnItemClickListener(this);
[...]
@Override
public void onItemClick(AdapterView<?> adapter, View v, int pos, long id) {
selected = (File) fileList.getItemAtPosition(pos);
}
このように、スクロールされるまでセレクターが選択時に表示されないことを除いて、すべてが正しく機能しますListView
(アイテムが正しく選択されていても、リストがスクロールされるまで、選択されたものとして視覚的に表示されるものはありません)。
フォーカス不可を設定するとPopupWindow
、視覚的な選択は正しく機能しますが(クリックするとアイテムが視覚的に選択されます)、onItemClick()
呼び出されないため、選択したアイテムを取得できません。
ListView.getSelectedItem()
null
選択したアイテムがある場合でも、どちらの場合も常に戻ります。
この状況を解決する方法について何かアイデアはありますか?前もって感謝します。