gpt4 book ai didi

java - 将数据从数据库检索到我的应用程序(不工作)

转载 作者:行者123 更新时间:2023-12-02 12:04:42 24 4
gpt4 key购买 nike

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

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

数据检索.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 和 rating)

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());

我将您的成功 block 复制到异常 block 中,它按预期工作,因此该代码是有效的。我还会在 catch 中添加某种警报,让您知道在完成测试后发生了失败。

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

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

关于java - 将数据从数据库检索到我的应用程序(不工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46984258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com