Java Android studio-注册按钮不起作用:c(与我的sql数据库相关)
嘿,伙计们,我正在创建一个应用程序。允许用户注册到数据库。但是很明显,一旦所有的细节都写好了,注册按钮就不起作用了。有人知道问题出在哪里吗 ps-我已在清单文件中添加了internet权限。我的register.php文件也在工作。我通过手动输入信息来测试它 我的代码Java Android studio-注册按钮不起作用:c(与我的sql数据库相关),java,android,mysql,sql,database,Java,Android,Mysql,Sql,Database,嘿,伙计们,我正在创建一个应用程序。允许用户注册到数据库。但是很明显,一旦所有的细节都写好了,注册按钮就不起作用了。有人知道问题出在哪里吗 ps-我已在清单文件中添加了internet权限。我的register.php文件也在工作。我通过手动输入信息来测试它 我的代码 package com.example.naveen.driver; 导入android.content.Intent; 导入android.support.v7.app.AlertDialog; 导入android.suppo
package com.example.naveen.driver;
导入android.content.Intent;
导入android.support.v7.app.AlertDialog;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.toolbox.volley;
导入org.json.JSONException;
导入org.json.JSONObject;
公共类注册表扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u register\u页面);
最终EditText rname=(EditText)findViewById(R.id.rname);
最终EditText-rusername=(EditText)findViewById(R.id.rusername);
final EditText rpassword=(EditText)findViewById(R.id.remail);
final EditText remail=(EditText)findViewById(R.id.rpassword);
最终EditText rcarmodel=(EditText)findViewById(R.id.rcarmodel);
最终编辑文本rcaryear=(编辑文本)findViewById(R.id.rcaryear);
最终编辑文本rreg=(编辑文本)findViewById(R.id.rreg);
最终按钮rbutton=(按钮)findViewById(R.id.rbutton);
rbutton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图V){
最终字符串名称=rname.getText().toString();
最终字符串username=rusername.getText().toString();
最终字符串email=remail.getText().toString();
最终字符串密码=rpassword.getText().toString();
最终字符串caryear=rcarmodel.getText().toString();
最后一个字符串carmodel=rcaryear.getText().toString();
最后一个字符串carreg=rreg.getText().toString();
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
如果(成功){
Intent Intent=新的Intent(RegisterPage.this,LoginPage.class);
RegisterPage.this.startActivity(意图);
}否则{
AlertDialog.Builder=新建AlertDialog.Builder(RegisterPage.this);
builder.setMessage(“注册失败”)
.setNegativeButton(“重试”,null)
.create()
.show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};
RegisterRequest RegisterRequest=新的RegisterRequest(名称、用户名、密码、电子邮件、carmodel、caryear、carreg、responseListener);
RequestQueue=Volley.newRequestQueue(RegisterPage.this);
添加(registerRequest);
}
});
}
}
我想我明白了您的问题,因为您是在向服务器发出请求后添加参数的,所以您需要在向服务器发出调用之前添加参数。像这样做,完成你的工作
rbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View V) {
final String name = rname.getText().toString();
final String username = rusername.getText().toString();
final String email = remail.getText().toString();
final String password = rpassword.getText().toString();
final String caryear = rcarmodel.getText().toString();
final String carmodel = rcaryear.getText().toString();
final String carreg = rreg.getText().toString();
//adding your params here will get the data to be passed in your db and make your job done
RegisterRequest registerRequest = new RegisterRequest(name, username, password, email, carmodel, caryear, carreg, responseListener);
RequestQueue queue = Volley.newRequestQueue(RegisterPage.this);
queue.add(registerRequest);
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) {
Intent intent = new Intent(RegisterPage.this, LoginPage.class);
RegisterPage.this.startActivity(intent);
}else{
AlertDialog.Builder builder = new AlertDialog.Builder(RegisterPage.this);
builder.setMessage("Register Failed")
.setNegativeButton("Retry", null)
.create()
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
}
});
rbutton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图V){
最终字符串名称=rname.getText().toString();
最终字符串username=rusername.getText().toString();
最终字符串email=remail.getText().toString();
最终字符串密码=rpassword.getText().toString();
最终字符串caryear=rcarmodel.getText().toString();
最后一个字符串carmodel=rcaryear.getText().toString();
最后一个字符串carreg=rreg.getText().toString();
//在这里添加参数将获得要在数据库中传递的数据,并完成工作
RegisterRequest RegisterRequest=新的RegisterRequest(名称、用户名、密码、电子邮件、carmodel、caryear、carreg、responseListener);
RequestQueue=Volley.newRequestQueue(RegisterPage.this);
添加(registerRequest);
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
如果(成功){
Intent Intent=新的Intent(RegisterPage.this,LoginPage.class);
RegisterPage.this.startActivity(意图);
}否则{
AlertDialog.Builder=新建AlertDialog.Builder(RegisterPage.this);
builder.setMessage(“注册失败”)
.setNegativeButton(“重试”,null)
.create()
.show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};