java - 如何在android中的另一个类中调用带有View类型参数的函数

标签 java android nullpointerexception parameter-passing

在 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/

相关文章:

java - 如何在不同 Activity 的android studio中加密/解密文本

java - fragment Android 中的 SearchView

java - 什么是NullPointerException,我该如何解决?

Java:验证 null 方法参数的最佳方法是什么

java - 获取有关 WiFi 网络的信息

java - 模式访问者 : Abstract class needs a function

android - 如何在android xamarin中调整图像按钮的大小?

java - 在后台创建 Android 地理围栏而不崩溃

java - corrupted double-linked list error 第一次运行程序时,后续运行正常

android - 如何调用 Fragment 的 onResume()