2017-01-26 11 views
-1

Ich möchte die Daten vom Server einstellen, ich habe eine Antwort vom Server, wenn ich debuggen, aber es setzt nicht den settext.wenn ich den Code nichts scheint passieren, zeigt es nicht Serverdaten in textview: hier ist meine Java-Klasse:keine Daten vom Server in Textview in Android erhalten?

public class PMAddPigeonActivity extends AppCompatActivity { 

private static String url= "http://.........php"; 
    TextView commission; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_pmadd_pigeon); 

    commission=(TextView)findViewById(R.id.comm) ; 


     getData(); 
} 
private void getData() { 
     StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 

       showJSON(response); 
      } 
     }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(PMAddPigeonActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show(); 
        } 
       }); 

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

    private void showJSON(String response){ 


     try { 
      JSONObject jsonObject = new JSONObject(response); 
      JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY); 
      JSONObject collegeData = result.getJSONObject(0); 
      String name1 = collegeData.getString("commission"); 
      commission.setText(name1, TextView.BufferType.EDITABLE); 





     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     // commission.setText(""+name); 
    } 

config.java

public class Config { 

    public static final String KEY_NAME = "commission"; 

    public static final String JSON_ARRAY = "result"; 
} 

meine json Ausgabe:

{ 
    "id": 1, 
    "commission": 0.01 
} 

mein xml:

<TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceSmall" 

       android:id="@+id/comm" 
       android:textColor="#000" 
       android:layout_marginTop="70dp" 

       android:layout_alignTop="@+id/pedigreeupload" 
       android:layout_alignRight="@+id/dname" 
       android:layout_alignEnd="@+id/dname" /> 
+0

Sie können Text nur im UI-Thread auf textview setzen. Sind Sie sicher, dass Ihre onResponse im UI-Thread aufgerufen wird? –

+0

versuchen, Ihre Antwort zuerst zu protokollieren oder zu toasten, wenn es wie erwartet ist? oder posten Sie auch Ihre JSON-Antwort. –

+0

stellen Sie sicher, dass die 'collegeData.getString (" Kommission ")' gibt richtigen Text, der angezeigt werden soll – arjun

Antwort

1

Da in Ihrer Antwort kein JSON-Array vorhanden ist, müssen Sie die Antwortbehandlung wie folgt ändern.

JSONObject jsonObject = new JSONObject(response); 
String name1 = jsonObject.getString("commission"); 
commission.setText(name1, TextView.BufferType.EDITABLE); 
+0

es funktioniert ... thx –

Verwandte Themen