Member 14866477 Ответов: 0

Попытка создать страницу входа с помощью retrofit library и rest API в android studio с помощью login API но приложения закрываются при нажатии на кнопку входа в систему


<pre>package com.example.androidapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.android.material.textfield.TextInputEditText;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class Login extends AppCompatActivity  {

EditText  username, password;
Button btnLogin;

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

username    = findViewById(R.id.editTextEmail);
password = findViewById(R.id.editTextPassword);
btnLogin      = findViewById(R.id.buttonLogin);

btnLogin.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {

        if(TextUtils.isEmpty(username.getText().toString()) || TextUtils.isEmpty(password.getText().toString())){
            Toast.makeText(Login.this,"Username / Password Required", Toast.LENGTH_LONG).show();
        }else{
            //proceed to login
            login();
        }
    }
});
}


public void login(){
    LoginRequest loginRequest = new LoginRequest();
    loginRequest.setUsername(username.getText().toString());
    loginRequest.setPassword(password.getText().toString());

    Call<LoginResponse> loginResponseCall = ApiClient.getUserService().userLogin(loginRequest);
    loginResponseCall.enqueue(new Callback<LoginResponse>() {
        @Override

        public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {

            Log.d("@sid","res"+response.code());

            if(response.isSuccessful()){
                Toast.makeText(Login.this,"Login Successful", Toast.LENGTH_LONG).show();
                final LoginResponse loginResponse = response.body();

                new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {

                        startActivity(new Intent(Login.this,Permission2.class).putExtra("data",loginResponse.getUsername()));
                    }
                },700);
            }else{
                Toast.makeText(Login.this,"Login Failed", Toast.LENGTH_LONG).show();
            }
        }

        @Override
        public void onFailure(Call<LoginResponse> call, Throwable t) {
            Toast.makeText(Login.this,"Throwable "+t.getLocalizedMessage(), Toast.LENGTH_LONG).show();
        }
    });
}

}


Что я уже пробовал:

Всякий раз, когда я пытаюсь сделать страницу входа в систему для своего приложения, она показывает, что вход не удался и не передает намерение, а также не может передать данные на 2-й странице моего приложения. Я беспомощен и не получаю никакой идеи, чтобы решить этот вопрос. Я прошу Вас любезно проверить мою вышеописанную кодировку и сообщить мне, если я сделал что-то не так.

David Crow

Вы прошли через код с помощью отладчика? Создается ли исключение? Из чего же возвращаются loginResponse.getUsername()?

Member 14866477

Сэр, я новичок в этом, и в настоящее время я запускаю приложение на эмуляторе, когда я запускаю приложение, открывается страница входа в систему, после чего я заполняю свои учетные данные (адрес электронной почты и пароль) и нажимаю на кнопку входа, и приложения автоматически закрываются.

Я новичок в этом деле, и это мой первый проект. Не могли бы вы помочь мне в этом, сэр?

David Crow

- Не могли бы вы помочь мне в этом, сэр?"

Смотрите мой предыдущий ответ.

0 Ответов