当前位置: 首页 > 知识库问答 >
问题:

btnSearch2。setOnClickListener(此);出错

杨慎之
2023-03-14

我正在学习Android Studio,并试图制作简单的字典。但是当我开始应用程序btnSearch2.setOnClickListener(this);这段代码给出了一个错误和应用程序崩溃(按钮和按钮2在不同的片段中)。那我该怎么办?

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

这是我定义的变量

 EditText editTextSearch;
 Button btnSearch;
 TextView txtResults;
 EditText editTextSearch2;
 Button btnSearch2;
 TextView txtResults2;


    editTextSearch = (EditText) findViewById(R.id.editTxtSearch);
    btnSearch = (Button) findViewById(R.id.button);
    txtResults = (TextView) findViewById(R.id.txtViewResults );
    editTextSearch2 = (EditText) findViewById(R.id.editTxtSearch2);
    btnSearch2 = (Button) findViewById(R.id.button2);
    txtResults2 = (TextView) findViewById(R.id.txtViewResults2 );
    btnSearch.setOnClickListener(this);
    btnSearch2.setOnClickListener(this);

最后,这是我的代码。

@Override
public void onClick(View v) {
        switch (v.getId()){
            case R.id.button:
           //my code
                break;
            case R.id.button2:
         //my code
              break;
        }
}

共有1个答案

东郭阳德
2023-03-14

这是因为您的两个按钮(button和button2)位于不同的片段中(如您所说),并且您在一个活动中获取ID,该活动的布局不包含任何具有该特定ID的按钮。因此btnSearchbtnSearch2的值是null。这就是为什么当你应用click listener时,应用程序会崩溃,因为值为null。在活动的布局中创建按钮或获取ID,并在片段中而不是在活动中执行业务逻辑。

您可以从以下网站获取参考:https://www.tutorialspoint.com/fragment-tutorial-with-example-in-android-studio

 类似资料:
  • 我们用Android中非常典型的例子去解释它是怎么工作的:View.setOnClickListener()方法。如果我们想用Java的方式去增加点击事件的回调,我首先要编写一个OnClickListener接口: public interface OnClickListener { void onClick(View v); } 然后我们要编写一个匿名内部类去实现这个接口: view.s

  • 在Kotlin中设置click侦听器时,我们可以这样写: SAM转换后,我们可以写: 但我注意到kotlin也接受: 以及 我想知道这里发生了什么?我的意思是应该使用匿名类或SAM速记之类的东西来实现。这是某种中间阶段还是什么? 任何解释或链接到资源是高度赞赏的。

  • 问题内容: 我在登录模式提交按钮的单击侦听器中遇到问题。 这是错误。 我对什么是空指针异常有一个合理的了解,并且已经彻底搜索了一个类似于我的问题。我试图以几种方式重新格式化点击侦听器,确保我具有正确的视图ID等。 显然,还有更多但与我认为无关的话题。这是带有按钮的对话框的XML文件。 任何帮助将不胜感激。 问题答案: 是因为它不属于 当你调用内部的,它要寻找一个你的活动的布局中。 试试这个代替:

  • 我试图通过按cardview开始另一项活动,cardview有一个朋友查找id。但是当我写回家时。java它给了我setOnClickListener中的问题。在homeActivity中,它告诉我无法解析“homeActivity”中的方法“homeActivity”。因为

  • 问题内容: 我收到一个错误,但我不明白是什么原因引起的。 这是生成错误的代码片段: 这是我的文件: 上面的代码导致 ,但是我不明白我正在访问什么空指针,因为我没有使用任何不安全的构造。完整的错误如下: 我该如何解决? 谢谢 问题答案: 您必须先致电才能注册。