简体   繁体   English

Android StartActivity 不会开始新的活动

[英]Android StartActivity won't start a new activity

I have two methods defined inside this class:我在这个 class 中定义了两种方法:

RegisterButtonClicked successfully calls an activity, but LoginButtonClicked won't.... RegisterButtonClicked 成功调用一个活动,但 LoginButtonClicked 不会......

The result of running this code is that it prints out "inside LoginButtonClicked2" log message which means the code is running the LoginButtonClicked method but not successfully executing the startActivity inside the method.运行此代码的结果是它打印出“inside LoginButtonClicked2”日志消息,这意味着代码正在运行 LoginButtonClicked 方法,但未成功执行该方法内的 startActivity。

public class MainActivity extends AppCompatActivity {


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

    }

    public void RegisterButtonClicked(View view) {
        Log.d("registerButtonClicked", "inside registerButtonClicked");
        Button Register = findViewById(R.id.RegisterButton);
        Register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this, Register.class));
            }
        });
    }
    public void LoginButtonClicked(View view) {
        Log.d("LoginButtonClicked", "inside LoginButtonClicked");
        Button login = findViewById(R.id.LoginButton);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("LoginButtonClicked", "inside LoginButtonClicked2");
                startActivity(new Intent(MainActivity.this, Login2.class));
            }
        });
    }
}

here is my activity_main.xml这是我的activity_main.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">

    <Button
        android:id="@+id/RegisterButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="191dp"
        android:layout_marginStart="134dp"
        android:layout_marginLeft="134dp"
        android:text="Register"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="266dp"
        android:onClick = "RegisterButtonClicked"/>
    <Button
        android:id="@+id/LoginButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="150dp"
        android:layout_marginStart="134dp"
        android:layout_marginLeft="134dp"
        android:text="Log in"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="200dp"
        android:onClick = "LoginButtonClicked"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginStart="107dp"
        android:layout_marginLeft="107dp"
        android:text="Welcome to Pick Rose!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</RelativeLayout>
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.pickrose3, PID: 8252
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pickrose3/com.pickrose3.Login2}: java.lang.IllegalArgumentException: Given String is empty or null
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6077)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
     Caused by: java.lang.IllegalArgumentException: Given String is empty or null
        at com.google.android.gms.common.internal.Preconditions.checkNotEmpty(Unknown Source)
        at com.google.firebase.auth.FirebaseAuth.signInWithEmailAndPassword(com.google.firebase:firebase-auth@@19.0.0:202)
        at com.pickrose3.Login2.onCreate(Login2.java:60)
        at android.app.Activity.performCreate(Activity.java:6662)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 

You may change your java code as below (consider it as one of the possible ways to solve this, please:):您可以如下更改您的 java 代码(请将其视为解决此问题的可能方法之一:):

public class MainActivity extends AppCompatActivity {

    public void RegisterButtonClicked(View RegisterButtonClicked) {
        startActivity(new Intent(MainActivity.this, Register.class));
    }

    public void LoginButtonClicked(View LoginButtonClicked) {
        startActivity(new Intent(MainActivity.this, Login2.class));
    }

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

}

If your are setting click from xml then dont need to set click listener in code.如果您从 xml 设置点击,则不需要在代码中设置点击监听器。

 public void RegisterButtonClicked(View view) {
                Log.d("registerButtonClicked", "inside registerButtonClicked");
                        startActivity(new Intent(MainActivity.this, Register.class));
            }

public void LoginButtonClicked(View view) {
                Log.d("LoginButtonClicked", "inside LoginButtonClicked");
                startActivity(new Intent(MainActivity.this, Login2.class));
            }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM