无法在Master/Detail Fragment ICS 4.0中设置激活列表项

MGD*_*MGD 0 android android-layout android-fragments android-listfragment

我正在尝试使用Master/Detail(Fragment)布局开发应用程序,但是我面临一个奇怪的问题,即当我添加自己的listview适配器然后在click/select停止工作时激活listview项目.

默认情况下提供的代码为虚拟数据

  setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(
      getActivity(), android.R.layout.simple_list_item_activated_1,
      android.R.id.text1, DummyContent.ITEMS));
Run Code Online (Sandbox Code Playgroud)

我替换的代码是

    CMyListAdapter adapter = new CMyListAdapter(getActivity(),
            CMyContent.getSampleMyContentList());
    setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

现在,当我单击listview项时,它突出显示并且不会保持持久性.

rci*_*ati 5

如果您使用自定义布局,请确保您设置正确的背景drawable:

android:background="?android:attr/activatedBackgroundIndicator"
Run Code Online (Sandbox Code Playgroud)

如果您想自定义指标的样式,您必须定义自己的StateListDrawablexml:

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

   <item android:drawable="@color/red" android:state_pressed="true"/>
   <item android:drawable="@color/blue" android:state_selected="true"/>
   <item android:drawable="@color/green" android:state_activated="true"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

并将其指定为行布局背景.