1

チェックボックスのクリックを処理するアダプターに次のコードがあります。gviewアダプタの View 引数を参照しますgetView()

アダプターコード:

        selected.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
                if (selection.size() == 0)
                    gview.performLongClick();
                else
                    gview.performClick();
            else
                if (selection.size() == 1)
                    gview.performLongClick();
                else
                    gview.performClick();
        }

    });

ListViewロジックはwhereperformLongClick()トリガーOnItemLongClickを含むアクティビティにあり、トリガーするperformClick() 必要がありますonItemClick() が、私の問題はそうではないということです:

活動コード:

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long itemId) {
    if (listMode == MODE_NAVIGATION){
        home.browserFragment.loadUrl(bookmarks.findById((int)itemId).getUrl());
        home.browserFragment.closeBookmarks();
    } else{
        updateMultipleItemsSelection((int)itemId);

    }
}

  @Override
   public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long itemId) {
    if (listMode == MODE_SELECTION){
        deactivateSelectionMode();
    }else{
        activateSelectionMode();
        updateMultipleItemsSelection((int)itemId);
    }
    return true;
}

誰もがその問題の可能な解決策を見ていますか?

ありがとう

4

2 に答える 2

1

チェックボックスはフォーカス可能であるため、周囲のリストビューアイテムはフォーカス可能ではありません。リストビューアイテムをXMLでフォーカス可能として設定してみてください。それでも問題が解決しない場合は、チェックボックスをフォーカス不可に設定してみてください(引き続きチェック可能です)。

于 2012-05-14T22:46:40.863 に答える