2017-09-23 12 views
1

ちょっと私はアプリケーションを作成しています。ユーザーはデータベースに登録することができます。明らかにすべての詳細が書かれていれば、登録ボタンは機能しません。誰が問題が何であるか見ることができますか?Androidスタジオ - 登録ボタンは動作しません:C(私のSQLデータベースに関連)

ps - マニフェストファイルにインターネット権限が追加されました。私のregister.phpファイルも動作しています。私は手動で情報を入力してテストしました。activity_register_page.xml

私のコード

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; 
 
    } 
 
}

<?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>

+1

登録ボタンの中にlogcatを追加して、内部に入っているかどうかを確認してください。 rButton.setOnlickListener()の中にlogcatを入れてください。そして今私に教えてください。 –

+0

申し訳ありませんが、私は何を意味するのですか? – user3431791

+0

下記の私の編集した回答を見て、これを試してみてください。 –

答えて

0

私はあなたの問題を抱えて考えて、サーバーに要求を行った後の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(); 
        } 

       } 
      }; 
     } 
    }); 

EDITS

あなたの問題は、あなたのparamsで物事を追加する間違った方法を使用しているあなたにRegisterRequestクラスです。このparams.put()

を使用するにもかかわらず

あなたResgisterRequestクラスで自分の結果を得るために、このような使用

使用params.add()

は、それはあなたを助けていただければ幸いです!

+0

私は "シンボルレスポンスリクエストエラーを解決できません" RegisterRequest registerRequest = new RegisterRequest(name、username、password、email、carmodel、caryear、carreg、responseListener); – user3431791

+0

申し訳ありませんが、私たちはビジネスに入っており、少なくともボタンが効いていることを知っています。今すぐあなたのコードを見て、詳細を送信するコードを確認し、問題はそこにあるだけです。今あなたのボタンが機能していないという問題を解決しました。今すぐあなた自身でそれをしなさい –

+0

@ user3431791私の編集された答えを見て、このようなことをやってみると、登録ボタンは私の側から行われ、RegisterRequestクラスで変更を行い、それが動作するかどうか教えてください。 –

関連する問題