Home > OS >  RegisterActivity does not call activity_main.xml
RegisterActivity does not call activity_main.xml

Time:12-10

I'm trying to start this activity_main.xlm after a user's registration flow, but when I click on the button, the app closes. I work a little time with Android but I couldn't identify this error.

I need that after clicking the register button, the app remains pressed and calls activity_main.xml

As Logcat shows, the data passes through the api {"insert":"ok"}, but the application closes and does not call activity_main.

RegisterActivity.java

public class RegisterActivity extends AppCompatActivity {


    EditText et_name, et_email, et_password, et_repassword;
    Button btn_register, btn_login;



    @Override
    protected void onCreate(Bundle savedInstanceState) {

        getSupportActionBar().setTitle("REGISTER");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);


       et_name = findViewById(R.id.et_name);
       et_email =findViewById(R.id.et_email);
       et_password = findViewById(R.id.et_password);
       et_repassword = findViewById(R.id.et_repassword);
       btn_register= findViewById(R.id.btn_register);
       btn_login = findViewById(R.id.btn_login);


       btn_register.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if(TextUtils.isEmpty(et_email.getText().toString())  || TextUtils.isEmpty(et_name.getText().toString()) || TextUtils.isEmpty(et_password.getText().toString())  || TextUtils.isEmpty(et_repassword.getText().toString())){
                   String message = "All input required";
                   Toast.makeText(RegisterActivity.this, message,Toast.LENGTH_LONG).show();

               }else {
                   RegisterRequest registerRequest = new RegisterRequest();
                   registerRequest.setName_app(et_name.getText().toString());
                   registerRequest.setEmail_app(et_email.getText().toString());
                   registerRequest.setPassword_app(et_password.getText().toString());
                   sendRegister(registerRequest);
               }
           }
       });

    }

    private void sendRegister(RegisterRequest registerRequest) {
        Call<RegisterResponse> registerResponseCall=ApiClient.getService().registerUser(registerRequest);
        registerResponseCall.enqueue(new Callback<RegisterResponse>() {
            @Override
            public void onResponse(Call<RegisterResponse> call, Response<RegisterResponse> response) {
                if (response.isSuccessful()){

                    String message = "Successful";
                    Toast.makeText(RegisterActivity.this, message,Toast.LENGTH_LONG).show();

                   startActivity(new Intent(RegisterActivity.this,MainActivity.class));
                   finish();


                }else{
                    String message = "An error occurred please try again later...";
                    Toast.makeText(RegisterActivity.this, message,Toast.LENGTH_LONG).show();


                }


            }

            @Override
            public void onFailure(Call<RegisterResponse> call, Throwable t) {
                String message = t.getLocalizedMessage();
                Toast.makeText(RegisterActivity.this, message,Toast.LENGTH_LONG).show();
            }
        });

    }

}

activity_register.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".RegisterActivity">


    <TextView
        android:id="@ id/tv_logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/register"
        android:textAlignment="center"
        android:textSize="50sp"
        android:layout_marginStart="25dp"
        android:layout_marginBottom="5dp"
        android:fontFamily="@font/indigo_daisy"
        android:layout_marginTop="60dp"/>

    <TextView
        android:id="@ id/tv_subtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tag"
        android:textSize="17sp"
        android:fontFamily="@font/roboto_regular"
        android:layout_marginStart="25dp"
        android:layout_marginBottom="50dp"/>

    <EditText
        android:id="@ id/et_name"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="@string/your_name"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="10dp"
        android:padding="15dp"
        android:inputType="textPersonName"
        android:fontFamily="@font/roboto_regular"
        android:background="@drawable/et_custom"
        android:textSize="15sp" />

    <EditText
        android:id="@ id/et_email"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="@string/e_mail"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="10dp"
        android:padding="15dp"
        android:fontFamily="@font/roboto_regular"
        android:inputType="textEmailAddress"
        android:background="@drawable/et_custom"
        android:textSize="15sp" />

    <EditText
        android:id="@ id/et_password"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="@string/password"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="10dp"
        android:padding="15dp"
        android:fontFamily="@font/roboto_regular"
        android:inputType="textPassword"
        android:background="@drawable/et_custom"
        android:textSize="15sp"
        app:errorEnabled="true"/>

    <EditText
        android:id="@ id/et_repassword"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="@string/re_type_password"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:padding="15dp"
        android:fontFamily="@font/roboto_regular"
        android:inputType="textPassword"
        android:background="@drawable/et_custom"
        android:textSize="15sp"
        app:errorEnabled="true"
        app:hintEnabled="false"
        app:passwordToggleEnabled="true"/>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <Button
            android:id="@ id/btn_register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_custom"
            android:fontFamily="@font/roboto_regular"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginBottom="30dp"
            android:layout_centerInParent="true"
            android:textColor="@android:color/white"
            android:text="@string/register"/>

        <Button
            android:id="@ id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="200dp"
            android:background="@drawable/btn_custom"
            android:fontFamily="@font/roboto_regular"
            android:text="@string/login"
            android:textColor="@android:color/white" />

    </RelativeLayout>

</LinearLayout>

MainActivity.java



public class MainActivity extends AppCompatActivity {

    LoginResponse loginResponse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        getSupportActionBar().hide();

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        Intent intent = getIntent();
        if (intent.getExtras() != null) {
            loginResponse = (LoginResponse) intent.getSerializableExtra("data");

            Log.e("TAG", "====>"   loginResponse.getEmail());


        }


    }


}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">


    <ImageView
        android:src="@drawable/ic_launcher_foreground"
        android:layout_width="188dp"
        android:layout_height="200dp"
        android:background="@color/colorPrimaryDark"/>

    <TextView
        android:text="@string/app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAllCaps="true"
        android:textColor="@color/colorPrimaryDark"/>

</LinearLayout>

manifest.xml


 <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <application
        android:usesCleartextTraffic="true"
        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/AppTheme">
        <activity android:name=".RegisterActivity" />
        <activity android:name=".MainActivity"/>
        <activity android:name=".LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

Logcat

2021-12-09 22:29:45.631 22677-23634/com.guincho.chamemeuguincho E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
    Process: com.guincho.chamemeuguincho, PID: 22677
    java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.art/javalib/core-oj.jar)
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.onResponse(DefaultCallAdapterFactory.java:77)
        at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:150)
        at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
2021-12-09 22:29:45.675 22677-22677/com.guincho.chamemeuguincho I/ViewRootImpl@9ebca35[LoginActivity]: stopped(false) old=true
2021-12-09 22:29:45.678 22677-23634/com.guincho.chamemeuguincho I/Process: Sending signal. PID: 22677 SIG: 9

CodePudding user response:

You should not get the support action bar before setcontentview is called.

Simply, move getSupportActionBar().hide(); after setContentView(R.layout.activity_main); and it should not crash anymore

Also please provide crash logs in the future, so we can debug quicker

  • Related