Java 登录不';我在安卓工作室什么都不做

Java 登录不';我在安卓工作室什么都不做,java,android,mysql,android-volley,Java,Android,Mysql,Android Volley,我正在使用安卓截击来进行登录验证。但是,当单击登录按钮时,它不起作用。我还添加了一个 <uses-permission android:name="android.permission.INTERNET" /> 在AndroidManifest.xml中,我检查了服务器是否有响应,以及邮递员(Chrome扩展名)是否没有错误。我在onClick事件(在XML上)上添加了一个“displayMessage” 这是我的身份验证。java(它处理GUI,我向LoginRequest发

我正在使用安卓截击来进行登录验证。但是,当单击登录按钮时,它不起作用。我还添加了一个

<uses-permission android:name="android.permission.INTERNET" />

AndroidManifest.xml中,我检查了服务器是否有响应,以及邮递员(Chrome扩展名)是否没有错误。我在onClick事件(在XML上)上添加了一个“displayMessage

这是我的身份验证。java(它处理GUI,我向LoginRequest发出请求以处理我的登录)

。。。
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.toolbox.volley;
导入org.json.JSONException;
导入org.json.JSONObject;
...
公共无效显示消息(视图v){
TextView messageText=(TextView)findViewById(R.id.message\u text);
EditText usernameField=(EditText)findViewById(R.id.usernameField);
EditText密码字段=(EditText)findViewById(R.id.passwordField);
//获取用户名和密码
最后一个字符串strUsername=usernameField.getText().toString();
字符串strPassword=passwordField.getText().toString();
//获取字符串的长度
int intUsername=usernameField.getText().length();
int intPassword=passwordField.getText().length();
if(strUsername.matches(“”){
setText(“请输入有效的用户名!”);
}否则如果(intUsername<3){
setText(“用户名长度不够!”);
}否则如果(intUsername>16){
setText(“用户名长度超过最大值!”);
}else if(strPassword.matches(“”){
setText(“请输入有效密码!”);
}否则如果(intPassword<6){
setText(“密码长度不够!”);
}否则如果(intPassword>32){
setText(“密码长度超过最大值!”);
}否则{
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
String requestMessage=jsonResponse.getString(“消息”);
如果(成功){
String UUID=jsonResponse.getString(“唯一用户id”);
String last_login=jsonResponse.getString(“last_login”);
String registration_date=jsonResponse.getString(“registration_date”);
意图i=新意图(Authentication.this,Mainpage.class);
i、 putExtra(“用户名”,结构名称);
i、 putExtra(“UUID”,UUID);
i、 putExtra(“上次登录”,上次登录);
i、 putExtra(“注册日期”,注册日期);
星触觉(i);
}否则{
TextView messageText=(TextView)findViewById(R.id.message\u text);
messageText.setText(requestMessage);
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};
LoginRequest LoginRequest=新的LoginRequest(strUsername、strPassword、responseListener);
RequestQueue=Volley.newRequestQueue(this);
添加(loginRequest);
}
}
这是我的LoginRequest.java(它处理来自Authentication.java的请求)

。。。
导入com.android.volley.Response;
导入com.android.volley.toolbox.StringRequest;
导入java.util.HashMap;
导入java.util.Map;
...
公共类LoginRequest扩展了StringRequest{
私有静态最终字符串登录\u请求\u URL=”http://blocktest.pe.hu/bta-api/api/v1/request.php";
私有映射参数;
公共登录请求(字符串用户名、字符串密码、响应.侦听器){
super(Method.POST,LOGIN\u REQUEST\u URL,listener,null);
params=新的HashMap();
参数put(“用户名”,用户名);
参数put(“密码”,密码);
}
@凌驾
公共MapgetParams(){
返回参数;
}
}

我的代码运行良好。不过我跳过了验证。您可能需要再次检查请求是否确实被提出。我使用的是
'com.android.volley:volley:1.0.0'
。您可能还需要添加ErrorListener,以便在发出请求时出现问题时通知您。我已与邮递员检查了m POST请求,该请求有效。我不知道如何添加ErrorListener,因为我是Android开发的新手。@AhmadFadli有什么建议吗?我已经检查了截图是否正在编译,它是否正在编译。您可以在LoginRequest构造函数中的
super()
的第四个参数中提供错误侦听器。我应该把它放在什么位置?
...
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
...

public void displayMessage(View v){
        TextView messageText = (TextView)findViewById(R.id.message_text);
        EditText usernameField = (EditText)findViewById(R.id.usernameField);
        EditText passwordField = (EditText)findViewById(R.id.passwordField);

        // Fetch Username and Password
        final String strUsername = usernameField.getText().toString();
        String strPassword = passwordField.getText().toString();

        // Fetch Length of Strings
        int intUsername = usernameField.getText().length();
        int intPassword = passwordField.getText().length();

        if(strUsername.matches("")){
            messageText.setText("Please put a valid username!");

        } else if(intUsername < 3){
            messageText.setText("Username length is not enough!");

        } else if(intUsername > 16){
            messageText.setText("Username length exceeded to maximum value!");

        } else if(strPassword.matches("")) {
            messageText.setText("Please put a valid password!");

        } else if(intPassword < 6){
            messageText.setText("Password length is not enough!");

        } else if(intPassword > 32){
            messageText.setText("Password length exceeded to maximum value!");

        } else {
            Response.Listener<String> responseListener = new Response.Listener<String>(){

                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonResponse = new JSONObject(response);
                        boolean success = jsonResponse.getBoolean("success");
                        String requestMessage = jsonResponse.getString("message");
                        if (success){
                            String UUID = jsonResponse.getString("unique_user_id");
                            String last_login = jsonResponse.getString("last_login");
                            String registration_date = jsonResponse.getString("registration_date");


                            Intent i = new Intent(Authentication.this, Mainpage.class);
                            i.putExtra("username", strUsername);
                            i.putExtra("UUID", UUID);
                            i.putExtra("last_login", last_login);
                            i.putExtra("registration_date", registration_date);
                            startActivity(i);
                        } else {
                            TextView messageText = (TextView)findViewById(R.id.message_text);
                            messageText.setText(requestMessage);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            };
            LoginRequest loginRequest = new LoginRequest(strUsername, strPassword, responseListener);
            RequestQueue queue = Volley.newRequestQueue(this);
            queue.add(loginRequest);
        }
    }
...
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.util.HashMap;
import java.util.Map;
...

public class LoginRequest extends StringRequest {
    private static final String LOGIN_REQUEST_URL = "http://blocktest.pe.hu/bta-api/api/v1/request.php";
    private Map<String, String> params;

    public LoginRequest(String username, String password, Response.Listener<String> listener){
        super(Method.POST, LOGIN_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("username", username);
        params.put("password", password);
    }

    @Override
    public Map<String, String>getParams() {
        return params;
    }
}