我对此代码有一个很大的问题:
public class Preferences extends PreferenceActivity {
private LinearLayout rootView;
private LinearLayout titleView;
private ListView preferenceView;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
rootView = new LinearLayout(this);
rootView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
rootView.setOrientation(LinearLayout.VERTICAL);
textView = new TextView(this);
textView.setText(R.string.tx_einstellungen);
textView.setTextColor(Color.WHITE);
textView.setTextSize(20);
titleView = new LinearLayout(this);
titleView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 45));
titleView.setBackgroundResource(R.color.background);
titleView.addView(textView);
titleView.setGravity(Gravity.CENTER);
preferenceView = new ListView(this);
preferenceView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
preferenceView.setId(android.R.id.list);
PreferenceScreen screen = createPreferenceHierarchy();
screen.bind(preferenceView);
preferenceView.setAdapter(screen.getRootAdapter());
rootView.addView(titleView);
rootView.addView(preferenceView);
this.setContentView(rootView);
setPreferenceScreen(screen);
}
private PreferenceScreen createPreferenceHierarchy() {
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
PreferenceScreen lang_screen = getPreferenceManager().createPreferenceScreen(this);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
// Screen preference
lang_screen.setKey("language_pref");
lang_screen.setTitle("Sprache");
lang_screen.bind(preferenceView);
root.addPreference(lang_screen);
// Example of next screen toggle preference
CheckBoxPreference nextScreenCheckBoxPref = new CheckBoxPreference(this);
nextScreenCheckBoxPref.setKey("next_screen_toggle_preference");
nextScreenCheckBoxPref.setTitle("");
nextScreenCheckBoxPref.setSummary("");
lang_screen.addPreference(nextScreenCheckBoxPref);
return root;
}
第一个首选项屏幕是一个漂亮的白色屏幕,顶部有一条蓝线,在行中我们有英文“首选项”中的文本“Einstellungen”,颜色为白色。
然而,当我点击“Sprache”时,下一个预制屏幕是黑色的,并且有一个机器人Titlebar ....我想创建更多的“pre-prefscreens”并且它们都必须是白色的,这些蓝线在顶部
请帮助
Thankx Alex
答案 0 :(得分:0)
这是Android 2.1u1中的已知错误。
如果您使用多级首选项屏幕,则Light主题不会传播到下一级屏幕。对于更高的SDK 2.2及更高版本,它可以完美地运行问题也出现在某些设备上。不幸的是,除了将主题留下黑暗之外,还没有解决方案。