有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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