我正在使用一个Android应用程序,该应用程序将测量一个人的身高和体重,并根据性别和年龄计算其BMI和所需的卡路里。

当我按下计算按钮时,应激活onClick方法,因此在第一种方法的实现中还有另一种方法被调用。
问题在于他们要我初始化视图,而在这种情况下我不知道它们是什么意思以及如何初始化。

这是我的Java代码:

public void calculateCalories()//this is the onClick method
{
    View view;
    onRadioButtonClicked(view); // here I get the error
}

public void onRadioButtonClicked(View view)
{
    boolean checked=((RadioButton) view).isChecked();
    switch (view.getId())
    {
        case R.id.male:
            if (checked)
                male_calories();
            break;
        case R.id.female:
            if (checked)
                female_calories();
            break;

    }
}

最佳答案

如果我正确理解您的Java代码,则不知道您的活动视图是您的复选框,这就是为什么您会收到错误消息。
初始化视图的通常做法是在onCreate方法中编写以下行:

CheckBox cb = (CheckBox) findViewById(R.id.yourcheckboxname);


然后添加侦听器:

cb.addOnCheckChanged(this);


并在您的Java类中实现onCheckChanged。

而且您不需要手动调用onCheckChanged()-每当用户选中或取消选中复选框时,它就会自动触发

09-25 22:13
查看更多