Android工作室 - 注册按钮不工作:c(相关我的sql数据库)
嘿家伙,所以我正在创建一个应用程序。允许用户注册到数据库。但显然注册按钮不会工作,一旦所有的细节已经写好。任何人都可以看到问题是什么?Android工作室 - 注册按钮不工作:c(相关我的sql数据库)
ps - 我已经在清单文件中添加了Internet权限。此外我的register.php文件正在工作。我通过手动输入信息来测试它。
我的代码
package com.example.naveen.driver;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
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 class RegisterPage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_page);
final EditText rname = (EditText) findViewById(R.id.rname);
final EditText rusername = (EditText) findViewById(R.id.rusername);
final EditText rpassword = (EditText) findViewById(R.id.remail);
final EditText remail = (EditText) findViewById(R.id.rpassword);
final EditText rcarmodel = (EditText) findViewById(R.id.rcarmodel);
final EditText rcaryear = (EditText) findViewById(R.id.rcaryear);
final EditText rreg = (EditText) findViewById(R.id.rreg);
final Button rbutton = (Button) findViewById(R.id.rbutton);
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();
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();
}
}
};
RegisterRequest registerRequest = new RegisterRequest(name, username, password, email, carmodel, caryear, carreg, responseListener);
RequestQueue queue = Volley.newRequestQueue(RegisterPage.this);
queue.add(registerRequest);
}
});
}
}
RegisterRequest.java
package com.example.naveen.driver;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
/**
* Created by NAVEEN & CHRISTO on 21-Sep-17.
*/
public class RegisterRequest extends StringRequest {
private static final String REGISTER_REQUEST_URL = "https://dipteran-thin.000webhostapp.com/Register.php";
private Map<String, String> params;
public RegisterRequest(String name, String username, String password, String email, String carmodel, String caryear, String carreg, Response.Listener<String> listener){
super(Method.POST, REGISTER_REQUEST_URL, listener, null);
params = new HashMap<>();
params.put("name", name);
params.put("username", username);
params.put("password", password);
params.put("E-mail", email);
params.put("carmodel", carmodel);
params.put("caryear", caryear);
params.put("caryear", carreg);
}
@Override
public Map<String, String> getParams() {
return params;
}
}
activity_register_page.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.naveen.driver.RegisterPage">
<EditText
android:id="@+id/rname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Name"
android:inputType="textPersonName"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/rreg"
android:layout_alignStart="@+id/rreg" />
<EditText
android:id="@+id/rusername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Username"
android:inputType="textPersonName"
android:layout_below="@+id/rname"
android:layout_alignLeft="@+id/rname"
android:layout_alignStart="@+id/rname" />
<Button
android:id="@+id/rbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="81dp"
android:text="Register"
android:layout_below="@+id/rreg"
android:layout_centerHorizontal="true" />
<EditText
android:id="@+id/remail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/rusername"
android:layout_alignStart="@+id/rusername"
android:layout_below="@+id/rusername"
android:ems="10"
android:hint="E-mail "
android:inputType="textPersonName" />
<EditText
android:id="@+id/rpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/remail"
android:layout_alignStart="@+id/remail"
android:layout_below="@+id/remail"
android:ems="10"
android:hint="Password"
android:inputType="textPassword" />
<EditText
android:id="@+id/rcarmodel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Car - Model"
android:inputType="textPersonName"
android:layout_below="@+id/rpassword"
android:layout_alignLeft="@+id/rpassword"
android:layout_alignStart="@+id/rpassword" />
<EditText
android:id="@+id/rcaryear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/rcarmodel"
android:layout_alignStart="@+id/rcarmodel"
android:ems="10"
android:hint="Car - Year"
android:inputType="textPersonName"
android:layout_below="@+id/rcarmodel" />
<EditText
android:id="@+id/rreg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Reg No"
android:inputType="textPersonName"
android:layout_below="@+id/rcaryear"
android:layout_centerHorizontal="true" />
</RelativeLayout>
我想我得到了你的问题,因为你正在请求到服务器后,加入PARAMS,您需要向服务器调用之前添加PARAMS。做到这一点,并完成你的工作!
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();
}
}
};
}
});
编辑
你的问题是你RegisterRequest类你用你的PARAMS添加东西的错误的方式。
使用这样让你的结果你ResgisterRequest类
使用params.add()
尽管使用这个params.put()
希望它会帮助你的!
我收到“无法解决符号响应请求错误”RegisterRequest registerRequest = new RegisterRequest(名称,用户名,密码,电子邮件,carmodel,caryear,carreg,responseListener); – user3431791
好吧,我们正在开展业务,至少我们知道该按钮正在工作。现在看看你的代码,并检查你的代码发送的细节,问题只在那里。现在我解决了您的按钮无法使用的问题。现在通过你自己做 –
@ user3431791看到我编辑的答案,并尝试这样做,注册按钮完成从我身边,现在在您的RegisterRequest类中进行更改,并告诉我,如果它的工作 –
只是尝试添加注册按钮内的logcat,看看它是否进入它或不。只需将logcat放在rButton.setOnlickListener()中即可。现在告诉我。 –
对不起,我没有得到你的意思? – user3431791
看到我下面编辑的答案,并尝试这样做。 –