所以我试图检索存储在数据库中的数据。

基本上,用户输入了汽车登记号和等级(介于1-5之间),然后单击按钮。单击按钮后,我的代码将执行。它从editext获取文本并发送到我的服务器。我保存了php文件,该文件将检查汽车登记号是否与数据库中的值匹配。如果匹配,则检索存储在数据库中的当前评级。然后,该值将显示在另一个活动性上。 php文件工作正常。我尝试通过手动插入值。我的问题是,当单击按钮时,没有发生。我已使用此代码在另一个应用程序上检索用户名和其他详细信息。

dataretrieve.java

public class DataRetrieve extends StringRequest {

private static final String REGISTER_REQUEST_URL = "https://dipteran-thin.000webhostapp.com/Login1.php";
private Map<String, String> params;

public DataRetrieve (String carreg, int rating, Response.Listener<String> listener) {

        super(Method.POST, REGISTER_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("carreg", carreg);
        params.put("rating", rating + "");



    }

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


Profile.java(用户输入carreg和等级)

public class Profile extends AppCompatActivity {

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

    final EditText editText = (EditText) findViewById(R.id.carreg);
     final EditText editText1 = (EditText) findViewById(R.id.editText3);
    Button button = (Button) findViewById(R.id.button2);


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final String carreg = editText.getText().toString();
            final int rating = Integer.parseInt(editText1.getText().toString());

            // Response received from the server
            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");

                        if (success) {

                            int rating = jsonResponse.getInt("rating");

                            Intent intent = new Intent(Profile.this, UserAreaActivity.class);
                            intent.putExtra("rating", rating);
                            Profile.this.startActivity(intent);
                        } else {
                            AlertDialog.Builder builder = new AlertDialog.Builder(Profile.this);
                            builder.setMessage("Login Failed")
                                    .setNegativeButton("Retry", null)
                                    .create()
                                    .show();
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            };

            DataRetrieve loginRequest = new DataRetrieve(carreg, rating, responseListener);
            RequestQueue queue = Volley.newRequestQueue(Profile.this);
            queue.add(loginRequest);
        }});
    }
}


userareaactivity.java(检索时显示值)

public class UserAreaActivity extends AppCompatActivity {

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


    final TextView etusername = (TextView) findViewById(R.id.textView2);
    final TextView etwelcome = (TextView) findViewById(R.id.textView);

    final TextView etuname = (TextView) findViewById(R.id.textView3);
    final Button Logout = (Button) findViewById(R.id.logout);

    //String Name = SharedPreferenceUtils.getName(this);
    //etwelcome.setText(Name);




   Intent intent = getIntent();
   username = intent.getIntExtra("rating", -1);
    etusername.setText(username + "");








    //Intent in = new Intent(getApplicationContext(), Messages.class);
    //in.putExtra("username", username);
    //UserAreaActivity.this.startActivity(in);

}
@Override
public void onBackPressed(){


}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)) {
        Intent intent = new Intent(UserAreaActivity.this, Messages.class);
        UserAreaActivity.this.startActivity(intent);

    }
    return true;
}

最佳答案

我从您的php页面收到一个错误:

<b>Parse error</b>:  syntax error, unexpected ']' in <b>/storage/ssd1/526/2972526/public_html/Login1.php</b> on line <b>8</b><br />


通过在JSON解析上方使用此行,您可以在日志中看到响应的输出(在抛出异常之前)

Log.d("Response", response.toString());


我将您的成功块复制到异常块中,并且该块可以按预期运行,因此该代码有效。我还将在警报中添加某种警报,以让您知道测试完成后发生的故障。

旁注,将您的参数行更改为此...更干净:

params.put("rating", String.valueOf(rating));

10-07 13:05
查看更多