2017-01-04 1 views
1

Ich bin neu bei Android, hier, wenn ich vergessen Passwort vergessen, sollte es zur nächsten Aktivität gehen und dort, wenn ich richtige E-Mail schreibe dann sollte es SetText das richtige Passwort von server.But Ich bekomme keinen Wert vom Server. hier ist mein ForgotPassword.java:Ich bekomme keinen Wert vom Server in meine Textansicht mit Android

public class ForgotPasswordActivity extends AppCompatActivity { 

private String fremail; 
private ProgressDialog pDialog; 
protected EditText femail; 
protected Button mSubmitButton; 
TextView pas; 

private static String url_create_book = "http://cloud......com/broccoli/fpassword.php"; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_forgot_password); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    pas = (TextView) findViewById(R.id.pas); 
    femail = (EditText) findViewById(R.id.feml); 

    Button submit = (Button) findViewById(R.id.sbtn); 
    submit.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

    pDialog = new ProgressDialog(ForgotPasswordActivity.this); 
    pDialog.setMessage("Please wait.."); 
    pDialog.setIndeterminate(false); 
    pDialog.setCancelable(true); 
    pDialog.show(); 
    fremail = femail.getText().toString(); 

    // new CreateNewProduct().execute(); 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, url_create_book, 
    new Response.Listener <String>() { 
     @Override 
     public void onResponse(String response) { 
     pDialog.dismiss(); 

     try { 
     JSONObject object = new JSONObject(response); 
     JSONArray jsonArray = object.getJSONArray("result"); 
     JSONObject jsonObject = jsonArray.getJSONObject(0); 

     // fetch password from JSON 
     String password = jsonObject.getString("password"); 
     // use password in textviewfemail.setText(password, TextView.BufferType.EDITABLE); 
     pas.setText(password, TextView.BufferType.EDITABLE); 
     } catch (JSONException e) { 
     Toast.makeText(ForgotPasswordActivity.this, e.toString(), Toast.LENGTH_LONG).show(); 
     } 


     } 

    }, 

    new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
     pDialog.dismiss(); 
     Toast.makeText(ForgotPasswordActivity.this, error.toString(), Toast.LENGTH_LONG).show(); 
     } 
    }) { 
    @Override 
    protected Map < String, String > getParams() { 
     Map < String, String > params = new HashMap < String, String >(); 
     params.put("email", fremail); 


     return params; 
    } 
    }; 
    RequestQueue requestQueue = Volley.newRequestQueue(ForgotPasswordActivity.this); 
    requestQueue.add(stringRequest); 

    } 

    }); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
    onBackPressed(); 
    return true; 
    default: 
    return super.onOptionsItemSelected(item); 
    } 
} 

} 

hier ist mein PHP-Code:

<?php 

    include ('config.php'); 

    // updated here, value is mapped 

    $email = $_POST['email']; 

    //$email = '[email protected]'; 

    $sql = "SELECT * FROM UserInfo WHERE email='".$email."'"; 
    $r = mysqli_query($conn,$sql); 

    $num = mysqli_num_rows($r); 

    if($num == 0){ 
    echo "Invalid email"; 
    } 
    else{ 

    $result = mysqli_fetch_array($r); 

    } 

    $data['password'] = $result['password']; 

    echo json_encode($data); 
    mysqli_close($conn); 

?> 

Ich bin nicht Fehler, den ich in logcat immer bin gerade dies in mobilen jsonException bekommen. Index 0 von 0 Bereich [0 ... 0]

hier ist meine Json Antwort:

{ 
    "password": "" 
} 
+0

durch das Debuggen, das erste Objekt und dann das erste Array sind null oder sie gefüllt sind? –

+0

neu zu android..dont wissen, wie zu debuggen –

+0

.. ok, so dass Sie besser zurück in die Tutorial-Phase gehen .. Debuggen ist die erste Aufgabe zu lernen. Suche auf Google "Wie auf Android Studio debuggen". Wie auch immer, es gibt einen Button namens "Debug" in der oberen Mitte des Programms, durch Klicken auf eine Zeile auf der linken Seite fügen Sie einen Breakpoint hinzu und so weiter. Aber * schau dir zuerst einige Tutorials an * –

Antwort

1

bekam ich die Antwort ... mein PHP-Code ist in Ordnung, die ich geschrieben über das Problem mit json Objekt und json Array als @Pier Giorgio Misley hat mir gesagt, .so hier ist meine Updates Aktivität:

StringRequest stringRequest = new StringRequest(Request.Method.POST, url_create_book, 
         new Response.Listener<String>() { 
          @Override 
          public void onResponse(String response) { 
           pDialog.dismiss(); 

           try { 
            JSONObject object  = new JSONObject(response); 

           // JSONArray jsonArray = object.getJSONArray(0); 
            // JSONObject jsonObject = jsonArray.getJSONObject(0); 

// fetch password from JSON 
            String password   = object.getString("password"); 
// use password in textviewfemail.setText(password, TextView.BufferType.EDITABLE); 
            pas.setText(password, TextView.BufferType.EDITABLE); 



           } 
           catch (JSONException e) { 
            Toast.makeText(ForgotPasswordActivity.this, e.toString(), Toast.LENGTH_LONG).show(); 
           } 
+0

ja das ist der richtige Weg, um Ihre json zu analysieren .. Hauptproblem ist in json zu analysieren .. Parsing ist abhängig von der Struction von json Antwort .. –

+0

yeah ..können Sie meine Anser upvote, wenn es nützlich –

+0

Sie wissen, wie man alertdialog box senden Wert zur Datenbank ... hast du diese Art von Ding versucht? –

Verwandte Themen