1

私の OnActivityCreated:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);

および onListItemClick:

public void onListItemClick(ListView l, View v, int position, long id) {
        String item = (String) getListAdapter().getItem(position);
        DetailFragment fragment = (DetailFragment) getFragmentManager()
                .findFragmentById(R.id.detailFragment);
        if (fragment != null && fragment.isInLayout()) {
            v.setBackgroundColor(getResources().getColor(R.color.darkcherry));
            fragment.setText(item);
        }

これを行うと、選択したアイテムは色付きの背景になりますが、別のアイテムを選択しても前の選択は消えません。私の前の質問では、提供されたソリューションは xml を使用していますが、リストビューの xml を定義していません。フラグメントのみが定義されています。選択範囲 (背景) に色を付けるにはどうすればよいですか?

前の質問へのリンク: Android の ListFragment で選択した項目の色を設定するには?

4

4 に答える 4

1

support4ライブラリのListFragmentのサンプルでは、​​を作成することでこの種の機能を実現していlist row layout as checkableます。

私の答えデモプロジェクトを見つけてください。

于 2012-08-21T07:29:18.910 に答える
0

カスタム アダプターを使用してみてください。また、リスト アイテムのレイアウトで、セレクターを背景のドローアブルとして設定してください。

于 2013-03-25T12:44:24.683 に答える
0

新しいビューを選択するときに色を変更できるように、選択したビューを追跡する必要があります。

また、この変数を保持すると、画面が回転したときに選択を追跡できます (フラグメントの状態を保存および復元します)。

または、リスト ビューのセレクター プロパティを使用している場合は、単一選択モードとして設定できます。

getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

フラグメントの作成時。明らかに、onListItemClick を削除する必要があります。

于 2012-08-21T07:21:52.553 に答える