我有这个 ListFragment,我以这种方式在我的 Activity 中调用它:
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setTitle( getString(R.string.something) );
if ( savedInstanceState == null ) {
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
final Fragment f = CustomerListFragment.newInstance();
ft.add( android.R.id.content, f, FRAG_TAG_CUSTOMER_LIST );
ft.commit();
}
}
在我的片段上,我设置了单选:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
在我的清单中,我为它设置了一个样式:
<activity android:name=".ui.CustomerListActivity" android:clearTaskOnLaunch="true" android:theme="@style/Theme.AppList">
主题定义如下:
<style name="Theme.AppList">
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:listViewStyle">@style/AppListView</item>
</style>
<style name="AppListView" parent="@android:style/Widget.ListView.White">
<item name="android:dividerHeight">4dp</item>
<item name="android:listSelector">@color/selector_color</item>
<item name="android:ellipsize">marquee</item>
<item name="android:cacheColorHint">@color/list_item</item>
<item name="android:divider">@android:color/transparent</item>
</style>
和颜色:
<color name="list_item">@android:color/white</color>
<color name="selector_color">#ffba00</color>
但是,每当应用程序运行时,它看起来都很好,直到我长按一个项目或尝试拖动。然后所有元素都被选中,看起来像这样,而不是只选择一个元素。
所以问题是:如何使列表只选择 1 个元素而不是全部。
任何帮助将非常感激。