具有相同代码的多个按钮,一个不起作用

问题描述 投票:-1回答:1

我正在使用Android Studio开发我的第一个应用程序,并且我经常遇到一个问题:在具有多个按钮的页面/活动中,我对所有按钮使用相同的代码,调试或创建APK时没有问题,...但是一个按钮使该应用在我的手机上崩溃。 (而其他按钮正常工作)有什么明显的我想念的东西吗?

例如:这里“ btnNo”会使页面崩溃,而“ btnMaybe”可以正常工作:

Java:

`包com.sarahd.anitav5;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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

    Button btnYes = (Button) findViewById(R.id.btnYes);
    Button btnMaybe = (Button) findViewById(R.id.btnMaybe);
    Button btnNo = (Button) findViewById(R.id.btnNo);

    btnYes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentYes = new Intent(MainActivity.this, MenuActivity.class);
            startActivity(intentYes);
        }
    });

    btnMaybe.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentMaybe = new Intent(MainActivity.this, MaybeActivity.class);
            startActivity(intentMaybe);
        }
    });

    btnNo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentNo = new Intent(MainActivity.this, NoActivity.class);
            startActivity(intentNo);
        }
    });

}
}`

xml:

`

<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/btnYes"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button Yes"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    />

<Button
    android:id="@+id/btnMaybe"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button Maybe"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    />

<Button
    android:id="@+id/btnNo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ButtonNo"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    />
</androidx.constraintlayout.widget.ConstraintLayout>`

或者是NoActivity的问题?这是JAVA:

`package com.sarahd.anitav5;

import androidx.appcompat.app.AppCompatActivity;

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

public class NoActivity extends AppCompatActivity {

Button btnBye;

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

    btnBye = (Button) findViewById(R.id.btnBye);
    btnBye.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intentBye = new Intent(NoActivity.this, MainActivity.class);
            startActivity(intentBye);
        }
    });

}
}`

这是NoActivity XML:

`

<TextView
    android:id="@+id/noTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/noTitle"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toTopOf="@id/subtitleNo"
    app:layout_constraintTop_toTopOf="parent"
    android:textSize="@dimen/titleSize"
    />

<TextView
    android:id="@+id/subtitleNo"
    android:text="@string/subtitleNo"
    android:textSize="@dimen/subtitleSize"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingHorizontal="60dp"
    android:gravity="center_horizontal"
    app:layout_constraintBottom_toTopOf="@id/noImage"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/noTitle"
    />

<android.support.constraint.Guideline
    android:id="@+id/guideline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.5"
    />

<ImageView
    android:id="@+id/noImage"
    android:src="@drawable/autruche_pas_contente"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toTopOf="@id/guideline"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    />

<TextView
    android:id="@+id/noText"
    android:text="@string/noText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/noImage"
    />

<Button
    android:id="@+id/btnBye"
    android:text="@string/btnBye"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    android:textAllCaps="false"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/noText"
    />

</androidx.constraintlayout.widget.ConstraintLayout>`

非常感谢您的帮助!

java android button crash
1个回答
0
投票

问题出在您的no_activity.xml布局中。您正在将支持GuideLine与androidX约束布局一起使用。

使用androidx.constraintlayout.widget.Guideline代替android.support.constraint.Guideline

© www.soinside.com 2019 - 2024. All rights reserved.