【问题标题】:Android Studio crashes when trying to google search words from TextEdit尝试从 TextEdit 谷歌搜索词时,Android Studio 崩溃
【发布时间】:2020-09-12 20:33:56
【问题描述】:

我正在编写代码,我需要从前一个屏幕的 textedit 中搜索项目。但是当我按下按钮搜索时,android studio崩溃了,我做错了什么?

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {
    TextView name;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        name = findViewById(R.id.textView3);
        button = findViewById(R.id.Button2);
        String Name = getIntent().getStringExtra("text");
        name.setText(name.getText().toString()+ "" + Name);
        name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //https://www.google.com/#q=
                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com/#q=" + name.getText())));
            }
        });
    }
}

我的崩溃堆栈跟踪:

D/AndroidRuntime:关闭 VM E/AndroidRuntime:致命异常: 主进程:com.example.myapplication,PID:17740 java.lang.IllegalStateException:找不到方法 onClick(View) 在 android:onClick 属性的父或祖先上下文中定义 在具有 id 的视图类 androidx.appcompat.widget.AppCompatButton 'Button2' 在 androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:436) 在 androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:393) 在 android.view.View.performClick(View.java:7125) 在 android.view.View.performClickInternal(View.java:7102) 在 android.view.View.access$3500(View.java:801) 在 android.view.View$PerformClick.run(View.java:27336) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:214) 在 android.app.ActivityThread.main(ActivityThread.java:7356) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) I/Process:发送信号。 PID: 17740 SIG: 9 断开连接 目标虚拟机,地址:'localhost:8621',传输:'socket'

【问题讨论】:

  • 哦,我明白了,谢谢!

标签: java android


【解决方案1】:

您没有为按钮定义onClickListerner

我认为name.setOnClickListener 一定是button.setOnClickListener

顺便说一句:不要在两种不同的情况下使用相同的变量名: TextView name;String Name =.

按照约定,变量名应以小写字符开头

【讨论】:

  • 是的,我将“name.setOnClickListener”更改为“button.setOnClickListener”,它起作用了。谢谢,我不能 +1 你的评论,因为我没有 15 声望。
猜你喜欢
  • 2012-08-19
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2014-04-20
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多