gpt4 book ai didi

java - 单独类中的 OnClickListener 将不起作用

转载 作者:行者123 更新时间:2023-11-29 19:57:39 25 4
gpt4 key购买 nike

我曾尝试使用来自不同类的 OnClickListener,但它以某种方式抛出错误。有人可以帮我解决这个问题吗?

提前致谢。

public class TestClass extends Activity{



View.OnClickListener l = new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"Clicked", Toast.LENGTH_LONG).show();
}};}

MainActivity 的一部分:

@Override protected void onCreate(Bundle savedInstanceState) {
...
btnSpeech = (ImageButton) (findViewById(R.id.microphone));


obj=new TestClass();
btnSpeech.setOnClickListener(obj.l);

...

错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.project/com.example.user.project.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageButton.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.user.project.MainActivity.onCreate(MainActivity.java:74) at android.app.Activity.performCreate(Activity.java:6237) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.-wrap11(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method) 

最佳答案

你得到一个 NullPointerException 因为你的 btnSpeech 是空的。 findViewById() 如果您为 View 使用了错误的 ID,则返回 null,这可能就是问题所在。可以肯定的是,您的异常与 OnClickListener 无关。如果仔细阅读堆栈跟踪,您会发现它表示 setOnClickListener() 是在一个空对象上调用的。

而且,正如 Mike 评论的那样,您不能使用 new 关键字实例化 Activity 。使用 startActivity() 或使 TestClass 不扩展 Activity

关于java - 单独类中的 OnClickListener 将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36585862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com