java如何在安卓的另一个类中调用具有视图类型参数的函数
在安卓编程中完全是n00b,还有一个令人尴尬的问题。例如,我有一个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;
}
}
如果我必须在同一活动中的另一个类中调用此函数,例如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
如何在参数没有问题的情况下成功调用此函数
# 1 楼答案
通常你不会自己调用
onRadioButtonClicked()
方法。在android中使用它的方法是在xml中设置onClick属性,比如onClick:onRadioButtonClicked
。这样,当用户单击按钮时,android操作系统将为您调用该方法android处理按钮按下等事件的方式是使用回调方法。通过调用
radioButton.setOnClickListener()
并传入一个你自己创建的RadioButtonNonClickListener,可以通过编程方式设置你对单选按钮的回调。它也可以如上所述在xml中设置。如果类中有这样的方法,那么应该在xml中声明onclick请阅读以下onclick获取一般视图
http://martin.cubeactive.com/android-onclicklitener-tutorial/
下面是一些radioButtonCode示例,您可以看到其中一个正在运行 https://github.com/asabbarwal/SimpleRadioButton