编译器无法识别按钮

时间:2018-12-29 21:12:56

标签: java android

因此,我尝试了很长一段时间后创建自己的第一个应用程序,结果发现一些基本知识已使我的知识滑倒了,无论出于何种原因,即使是教程也无济于事。我创建了一个按钮,但是希望它在单击时能够执行操作,因此尝试将代码添加到MainActivity,尽管在尝试时会导致错误消息,但无法识别“按钮”,“视图”,或“ button_id”,我很困惑。下面,我将提供activity_main.xml代码以及.java的代码以供参考。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="48dp"
    android:text="@string/button"
    app:layout_constraintBottom_toTopOf="@+id/textView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

</android.support.constraint.ConstraintLayout>

现在是.java文件。

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.AdRequest;

public class MainActivity extends AppCompatActivity {
private InterstitialAd mInterstitialAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
    Button mButton = (Button) findViewById(R.id.button);
    final Button button = findViewById(R.id.button_id);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Code here executes on main thread after user presses button
        }
    });
}
}

1 个答案:

答案 0 :(得分:0)

ButtonView类需要被导入;例如

import android.widget.Button;
import android.view.View;

您的类位于默认包中,因此需要导入其使用的所有类(除了java.lang包中的类之外)。

引用button_id可能是一个错误。

Button mButton = (Button) findViewById(R.id.button);
final Button button = findViewById(R.id.button_id);  // Delete this line

或者,也许您需要在ID为android:id="@+id/button_id"的“ activity_main.xml”文件中声明另一个按钮