0

ユーザーが左側のリストをクリックして右側に何かを表示するgmailのようなインターフェースを作成しようとしています。左側にリストがあり、ユーザーがクリックすると項目が強調表示されるようになりました (私は初心者です)。問題は、ユーザーが今のところ空の右側をクリックすると、強調表示された項目が強調表示されなくなることです。

public class profileListFragment extends ListFragment {

    String[] countries = new String[] {"USA", "China"};

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(inflater.getContext(),
                android.R.layout.simple_list_item_1,countries);
        setListAdapter(adapter);
//      View listView = getActivity().findViewById(R.id.list));
        View retView = inflater.inflate(R.layout.fragment_load_profile_list_layout,container, false);
        ListView lv = (ListView) retView.findViewById(android.R.id.list);
        lv.setSelector(android.R.color.holo_orange_light);
        lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//      lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        return retView;
//      return super.onCreateView(inflater, container,  savedInstanceState);
    }

    @Override
    public void onPause(){

    }
}

さらにコードが必要な場合はお知らせください。前もって感謝します

編集

コードを次のように編集しました。

lv.setSelector(R.drawable.profile_list_selector);

profile_list_selector.xml は「drawable」フォルダーにあり、次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:state_enabled="false"
        android:drawable="@android:color/holo_green_dark" />

    <item android:state_pressed="true"
        android:drawable="@android:color/holo_blue_dark" />

    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@android:color/holo_blue_bright" />

    <item android:state_enabled="true"
        android:drawable="@android:color/holo_orange_dark" />


</selector>

今気づいたのは、右側の画面で、右側のテキストボックスをクリックしたときにのみハイライトが失われることです...チェックボックスをクリックすると、ハイライトされたアイテムが維持されます。このすべてについて完全に混乱しています

4

2 に答える 2

0

残念ながら、私の知る限り、簡単な答えはありません。

現在選択されている項目を別の方法で描画するカスタム アダプターのようなことを行う必要があります。また、選択したアイテムの状態を追跡する必要があります。

考えられる解決策については、このブログ投稿を参照してください。

http://bestsiteinthemultiverse.com/2009/12/android-selected-state-listview-example/

于 2012-11-11T19:28:38.710 に答える