首页 > 解决方案 > Android Studio 我的第二个 Activity 按钮不起作用

问题描述

我认为这是一个非常简单的问题。我是 Android Studio 的新手,我找不到答案。

我有一个活动,每个按钮切换到另一个活动。但是,在我的第二个活动中,我的简单按钮只是为了更改不起作用的 Textview。

布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".StartActivity">

    <TextView
        android:id="@+id/twText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="127dp"
        android:layout_marginLeft="127dp"
        android:layout_marginTop="88dp"
        android:layout_marginEnd="127dp"
        android:layout_marginRight="127dp"
        android:layout_marginBottom="624dp"
        android:text="Ihr Passwort war Richtig!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


    <Button
        android:id="@+id/btnChecke"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="134dp"
        android:layout_marginLeft="134dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="189dp"
        android:layout_marginRight="189dp"
        android:layout_marginBottom="371dp"
        android:text="Check"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

onCreate我的第二个活动中的方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

    tw = findViewById(R.id.twText);
    btnCheck = findViewById(R.id.btnChecke);

    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            tw.setText("work");
        }
    });
}

这就是我开始第二个活动的onCreate方式(我第一个活动的方法)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

    tw = findViewById(R.id.twText);
    Button btnCheck = findViewById(R.id.btnChecke);

    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setContentView("Work"R.layout.activity_main);
        }
    });
}

我检查了布局中的变量名,看起来一切都很好。

先感谢您。

标签: javaandroid

解决方案


这个答案基于我在 OP 的最新编辑之前发现的问题。这是我发现问题的编辑版本。

首先,onClickListener您的按钮有一些非常错误的地方。您正在再次设置内容视图,而不是开始您的第二个活动。看起来,您只是在设置您的内容视图StartActivity,实际上并没有启动MainActivity您尝试启动的内容。

为了开始一个新的活动,您需要在您的按钮中添加以下内容onClickListener

btnCheck.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // setContentView(R.layout.activity_main); // This is not the way for starting another activity 

        Intent intent = new Intent(this, MainActivity.class); 
        startActivity(intent);
    }
});

一旦MainActivity开始,您应该可以毫无问题地更改文本。


推荐阅读