首页 > 解决方案 > 打开第二个 Activity 时 Android Studio 应用程序崩溃

问题描述

我试图通过一个按钮打开第二个活动(MainActivity2),但应用程序每次都崩溃,我不太确定如何解决这个问题。我希望能够打开第二个屏幕以使用第二个活动。谢谢您的帮助。(分离代码有问题,所以我使用了行)

活动主要 xml + 主要活动

<?xml version="1.0" encoding="utf-8"?>
    <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=".MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="241dp"
            android:text="Activity1"
            android:id="@+id/textView"/>
    
        <Button
            android:id="@+id/button"
            android:layout_width="375dp"
            android:layout_height="101dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="275dp"
            android:text="open password generator" />
    
    </RelativeLayout>

   **Main activity** 

package com.example.menutest;

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 {
    private Button button;

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

        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openActivity2();

            }
        });
    }
    
        public void openActivity2() {
            Intent intent = new Intent(this, MainActivity2.class);
            startActivity(intent);
    
    
        }
    }

活动主 2 + 活动主 2 XML + 清单

    <?xml version="1.0" encoding="utf-8"?>
<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=".MainActivity2">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="203dp"
        android:layout_height="85dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="67dp"
        android:layout_marginLeft="67dp"
        android:layout_marginTop="264dp"
        android:hapticFeedbackEnabled="false"
        android:textColor="#070505"
        android:textSize="18sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.653"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="19dp"
        android:layout_marginLeft="19dp"
        android:layout_marginBottom="304dp"
        android:hapticFeedbackEnabled="true"
        android:soundEffectsEnabled="false"
        android:text="Generate strong password"
        android:textSize="18sp"
        android:textStyle="bold"
        app:backgroundTint="#36A13A"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.59" />
</RelativeLayout>

***Mainactivity2***

        package com.example.menutest;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import java.util.Random;
    
    public class MainActivity2 extends AppCompatActivity {
        Button button;
        TextView textView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            button = (Button)findViewById(R.id.button);
            textView = (TextView)findViewById(R.id.textView);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    textView.setText(generateString(16));
    
                }
            });
        }
        private String generateString(int length) {
            char[] chars ="/.,MNBVCXZ;LKJHGFDSAPOIUYTREWQ[]#=-)0987654321!£$*&qwertyuiopzxcvbnmasdfghjkl(".toCharArray();
            StringBuilder stringBuilder = new StringBuilder();
            Random random = new Random();
            for ( int i=0; i<length;i++)
            {
                char c = chars[random.nextInt(chars.length)];
                stringBuilder.append(c);
            }
            return stringBuilder.toString();
    
        }
    }

***AndroidManifest xml***

            <?xml version="1.0" encoding="utf-8"?>
            <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.example.menutest">
        
            <application
                android:allowBackup="true"
                android:icon="@mipmap/ic_launcher"
                android:label="@string/app_name"
                android:roundIcon="@mipmap/ic_launcher_round"
                android:supportsRtl="true"
                android:theme="@style/Theme.MENUTEST">
                <activity android:name=".MainActivity2"></activity>
                <activity android:name=".MainActivity">
                    <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
        
                        <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
                </activity>
            </application>
        
        </manifest>

..................................................... ………………………………………………………………………………

标签: javaandroidandroid-studio-3.0

解决方案


主要活动2

button = (Button)findViewById(R.id.button4);
textView = (TextView)findViewById(R.id.textView3);

推荐阅读