2017-01-26 2 views
-1

Я хочу настроить текст с сервера, я получил ответ от сервера, когда я делаю отладку, но не устанавливаю settext.when я запускаю код, кажется, ничего не происходит, его не отображаются данные сервера в textview: вот мой Java класс:Не получать данные с сервера в textview в android?

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

мой JSON выход:

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

мой 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

Вы можете установить текст в текстовое окно только на тему пользовательского интерфейса. Вы уверены, что ваш 'onResponse' вызывается в потоке пользовательского интерфейса? –

+0

попытайтесь сначала записать или опросить свой ответ, если это так, как ожидалось? или также отправьте ответ JSON. –

+0

убедитесь, что 'collegeData.getString (« комиссия »)' возвращает нужный текст, который должен быть отображен – arjun

ответ

1

Поскольку в вашем ответе нет массива JSON, вам необходимо изменить обработку ответа, как следует.

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

его рабочий ... thx –

Смежные вопросы