在 android 编程中完全 n00b 有一个令人尴尬的问题,在这里。例如,我有一个带有如下 View 参数的 onClick 函数:
public void onRadioButtonClicked(View view) {
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.radio_pirates:
if (checked)
// Pirates are the best
break;
case R.id.radio_ninjas:
if (checked)
// Ninjas rule
break;
}
}
如果我必须在同一 Activity 的另一个类中调用此函数,例如 AsyncTask 类或其他类。我将如何成功地做到这一点?我对参数感到困惑。我应该这样做吗:
View view; //local variable
onRadioButtonClicked(view); // it gives an error of being uninitialized
或者我应该用一个空值初始化它,比如:
View view = null;
//local variable onRadioButtonClicked(view); //this gives a null pointer exception
如何在参数没有问题的情况下成功调用此函数?
最佳答案
通常您不会自己调用onRadioButtonClicked()
方法。你应该在 android 中使用它的方式是在你的 xml 中设置 onClick 属性,就像这样 onClick:onRadioButtonClicked
。这样,当用户单击按钮时,android 操作系统会为您调用该方法。
android 处理按钮按下等事件的方式是使用回调方法。您可以通过调用 radioButton.setOnClickListener()
并传入您自己创建的 radioButtonOnClickListener 以编程方式设置单选按钮的回调。也可以如上所述在xml中设置。如果您的类中有类似的方法,您应该在 xml 中声明 onclick。
一般情况下,请阅读此内容以获取 onclick 的 View
http://martin.cubeactive.com/android-onclicklitener-tutorial/
这里是一些 radioButtonCode 的例子,所以你可以看到一个实际的例子 https://github.com/asabbarwal/SimpleRadioButton
关于java - 如何在android中的另一个类中调用带有View类型参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25249273/