我有類似的問題,設置在ListPreference我的類別列表。問題在於,您無法通過setEntries方法更改對話框中的可見選項(設置點擊偵聽器中的條目爲時已晚)。
對我來說,解決方案是添加DrawerListener,它告訴我的PreferenceFragment它應該無效。
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
final MainOptionsFragment fragment = (MainOptionsFragment) getFragmentManager().
findFragmentById(R.id.fragment_drawer);
mDrawerOptions = new DrawerLayout.SimpleDrawerListener() {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
fragment.onOpened();
}
};
mDrawerLayout.addDrawerListener(mDrawerOptions);
另一種解決方案是覆蓋onPrepareDialogBuilder方法,製得該對話框之前,其將設置條目。
class CustomListPreference extends ListPreference {
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
// TODO setEntries
super.onPrepareDialogBuilder(builder);
}
}
@ user1780619不爲我在所有的工作 - 它不清除列表選擇 – likejiujitsu 2014-05-01 21:03:25