首页 > 解决方案 > 拥有多个按钮会使我的应用程序崩溃

问题描述

我目前正在 Android Studio 上创建一个应用程序。

我使用不同的按钮(在同一个活动中)去不同的活动。问题是,只需一个按钮,一切都可以工作,但是当我添加另一个按钮时,模拟器会崩溃。

这是我的代码:

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

    defineButtons();
}

public void defineButtons() {
    findViewById(R.id.next1).setOnClickListener(buttonClickListener);
    findViewById(R.id.next2).setOnClickListener(buttonClickListener);
    findViewById(R.id.next3).setOnClickListener(buttonClickListener);
}

private View.OnClickListener buttonClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.next1:
                Intent Next1 = new Intent (Start.this, Next1.class);
                startActivity(Next1);
                break;
            case R.id.next2:
                Intent Next2 = new Intent (Start.this, Next2.class);
                startActivity(Next2);
                break;
            case R.id.next3:
                Intent Next3 = new Intent (Start.this, Next3.class);
                startActivity(Next3);
                break;
        }
    }
};

这里是 XML:

<RelativeLayout 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=".Start"
android:background="@drawable/background">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="700px"
        android:id="@+id/statement"
        android:text="TEXT1"
        android:background="@drawable/button_border"
        android:textColor="#000000"
        android:alpha="0.95"
        android:layout_marginHorizontal="70px"
        android:layout_marginTop="180px"
        android:gravity="center"
        android:paddingHorizontal="50px"
        android:textSize="16sp"
        />

    <Button
        android:id="@+id/next1"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:layout_width="match_parent"
        android:layout_height="150px"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="160dp"
        android:layout_marginHorizontal="70px"
        android:alpha="0.9"
        android:background="@drawable/button_border"
        android:text="TEXT2"
        android:textColor="@android:color/black"
        android:textSize="16sp"
        android:textAllCaps="false"/>

    <Button
        android:id="@+id/next2"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:layout_width="match_parent"
        android:layout_height="150px"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="90dp"
        android:layout_marginHorizontal="70px"
        android:alpha="0.9"
        android:background="@drawable/button_border"
        android:text="TEXT3"
        android:textColor="@android:color/black"
        android:textSize="16sp"
        android:textAllCaps="false"/>

    <Button
        android:id="@+id/next3"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:layout_width="match_parent"
        android:layout_height="150px"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:layout_marginHorizontal="70px"
        android:alpha="0.9"
        android:background="@drawable/button_border"
        android:text="TEXT4"
        android:textColor="@android:color/black"
        android:textSize="16sp"
        android:textAllCaps="false"/>
</RelativeLayout>

我知道这很混乱,我是编程新手。

标签: javaandroidxml

解决方案


您的代码非常好,您只需要像这样在清单文件中声明 Next2 和 Next3 活动

<activity android:name=".Next2"
        android:screenOrientation="portrait"/>
    <activity android:name=".Next3"
        android:screenOrientation="portrait"/>

Android 从清单文件中读取您的应用组件,请参阅此链接了解更多详细信息https://developer.android.com/guide/topics/manifest/manifest-intro


推荐阅读