2016-04-03 3 views
0

Ich bin ein Neuling für Android. Ich versuche, Volley zu verwenden, um meine Daten zu server.I Entsendung ist in der Lage, erfolgreich die Daten zu veröffentlichen, und ich bin immer respons wie dieserStore Antwort von Volley in gemeinsamen Präferenz

{ „status“: „Erfolg“, „username“:“ Benutzer Vishnu "," Benutzer-ID ":" 124 "," Rolle ":" UU "}

Ich muss die Werte dieser Antwort auf Sharedreference speichern. Wie kann ich dasselbe erreichen?

Vielen Dank im Voraus. Ich habe den folgenden Code in meiner Tätigkeit geschrieben

JsonObjectRequest stringRequest = new JsonObjectRequest(Request.Method.POST, loginURL, 
      new Response.Listener<JSONObject>() { 

       @Override 
       public void onResponse(JSONObject response) { 
        pDialog.dismiss(); 
        JSONObject josnOBJ = new JSONObject(response); 
        JSONArray jArray = josnOBJ.getJSONArray(); 
        JSONObject jsonData = null; 
        String title = null; 

        for (int i=0; i < jArray.length(); i++) 
        { 
         try { 
          jsonData = jArray.getJSONObject(i); 
          title= jsonData .optString("role"); 
         } catch (JSONException e) { 
          // Oops 
         } 
        } 
        String bla= response.toString(); 
        Log.i("Responses",bla); 
        Toast.makeText(LoginActivity.this,bla,Toast.LENGTH_LONG).show(); 
        Intent intent = new Intent(LoginActivity.this, DrawerSelectorActvity.class); 
        startActivity(intent); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        pDialog.dismiss(); 
        Toast.makeText(LoginActivity.this,error.toString(),Toast.LENGTH_LONG).show(); 
       } 
      }). 

PS: Es gibt Fehler in der code.This ist der Code, den ich bisher ausprobiert habe.

+0

Nun, was ist das Problem? Ich sehe keinen Code mit gemeinsamen Einstellungen. Sie möchten einige Zeichenfolgen in freigegebene Einstellungen schreiben? – greenapps

+0

Wenn die Antwort mehrere Titelwerte hat (JSONArray-Länge ist mehr als 1), werden alle Titel durch den letzten ersetzt. –

+0

Ich weiß, wie Werte zu freigegebenen Einstellungen hinzugefügt werden .. Aber wie können die Werte aus der obigen Antwort erhalten, so dass ich in sharedpref speichern kann –

Antwort

0

Versuchen Sie diese
Fügen Sie Code in Volley onResponse hinzu.

JSONObject josnOBJ = new JSONObject(response); 

      String username= jsonOBJ.getString("username"); 
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

      SharedPreferences.Editor editor = sharedpreferences.edit(); 

      editor.putString("username", username); 
      editor.commit(); // or editor.apply(); 
+0

Das wird die gesamte Antwort speichern ... richtig? Angenommen, ich muss nur Benutzernamen aus der Antwort speichern .. was soll ich tun –

+0

ja, dann müssen Sie Json-Wert mit Schlüssel (Benutzername) erhalten. Überprüfen Sie die aktualisierte Antwort. Ich hoffe es funktioniert. –

+0

Und imp: Dies ist Ihre letzte JSON-Antwort oder nur Probe? Wenn Sie fertig sind, lautet Ihre Antwort JSONObject, nicht JSONArray. so können Sie einfach Wert mit response.getString ("Benutzername") erhalten –

Verwandte Themen