4

私はListActivity

public class MyActivity extends ListActivity{

    protected void onCreate(Bundle savedstate){
        super.onCreate(savedstate);
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
        getListView().setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {


        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            Log.i("xxx", "onPrepareActionMode");
            return false;
        }


        public void onDestroyActionMode(ActionMode mode) {
            // TODO Auto-generated method stub

        }


        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            // TODO Auto-generated method stub
            return true;
        }


        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            // TODO Auto-generated method stub
            return false;
        }


        public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
            Log.i("xxx", "pos: "+position+", checked: "+checked);
            mode.setTitle(getListView().getCheckedItemCount()+" checked");

        }
    });
    }

}

ここでは、アイテムがチェックされていることがわかりますが、チェックされたアイテムの背景は変化していません。私はそれを行う方法を知っています。チェックされているビューの背景を設定しますCustomAdaptergetView()しかし、それを処理するもっと簡単な方法があると思います。とにかくそれを達成する方法があるかどうか教えていただけますか?

スクリーンショットの添付

4

1 に答える 1

12

わかりました、それを行う他のアプリのソースコードを調べて答えを得ました。リスト アイテムの背景としてステートリスト ドローアブルを設定します。セレクターstate_activated = trueで、背景のドローアブルを指定します。

于 2012-12-08T01:56:51.287 に答える