如果一个切换按钮被选中或未选中

5

我希望你能帮助翻译关于IT技术的内容。以下是需要翻译的内容:

我想判断一个复选框是否被选中,但是遇到了错误。

定义复选框的代码如下:

public class Preferences extends PreferenceActivity {

CheckBoxPreference togglePref;

...
}

复选框代码:
public void checkNotify() {   

if (togglePref.isChecked()==(true)) {

...

   }

}

OnCreate 代码:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //SharedPreferences settings = getSharedPreferences("EasySettingsPreferences", MODE_PRIVATE);
    //boolean notify = settings.getBoolean("notify", false);

    checkNotify();
    rootView = new LinearLayout(this);
    rootView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

    rootView.setOrientation(LinearLayout.VERTICAL);

    togglePref =  new CheckBoxPreference(this);

    textView = new TextView(this);
    textView.setText(R.string.app_name);

    titleView = new LinearLayout(this);
    titleView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 26));
    titleView.setBackgroundResource(R.drawable.pattern_carbon_fiber_dark);

    titleView.addView(textView);
    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);

}

Logcat图片:

logcat图片 http://img710.imageshack.us/img710/8529/unledxq.png

调试器图片

调试器图片 http://img847.imageshack.us/img847/1192/unled1rn.png

如果您能帮忙的话,请帮我一下。谢谢!


我添加了一个调试器的图片。 - Ryan Ciehanski
1
下次您无需从Logcat输出中创建图片,只需将其复制并粘贴在此处即可 :) - WarrenFaith
2个回答

14
我猜你从来没有初始化togglePref。为了确定,我们需要看一下onCreate()。(如果我猜错了,我将更新我的答案......) 编辑 我是对的。你在甚至初始化togglePref变量之前调用了checkNotify()。检查一下你的逻辑是否真的有意义在所有其他操作之前调用该方法,或者稍后调用它是否可以接受。
提示:您可以简化if语句:
// yours:
if (togglePref.isChecked()==(true)) {
// simplified:
if (togglePref.isChecked()) {

2
在你的onCreate()方法中,你在togglePref被初始化之前调用了checkNotify()。你需要将该初始化向上移动(或将checkNotify()向下移动)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接