2017-08-04 110 views
0
package net.myaapp.app.weatherapp; 

import android.os.Handler; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.JsonArrayRequest; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 


public class newsfeed extends AppCompatActivity { 
    RequestQueue rq; 

    TextView message_title; 
    private String message ; 
    String url = "https://graph.facebook.com/v2.10/"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_newsfeed); 
     rq = Volley.newRequestQueue(this); 

     message_title = (TextView)findViewById(R.id.message_feed) ; 

     sendjsonrequest(); 

    } 

    public void sendjsonrequest() { 

     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 

      @Override 
      public void onResponse(JSONObject response) { 

       try { 
        JSONObject feed = response.getJSONObject("feed"); 
        JSONArray jsonArray = feed.getJSONArray("data"); 
        for (int i=0;i<jsonArray.length();i++){ 
         JSONObject data = jsonArray.getJSONObject(i); 

         message = data.getString("message"); 

         message_title.setText(message); 
        } 


       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 

      } 
     }); 
     rq.add(jsonObjectRequest); 

    } 



    private String getDate(long timeStamp) { 
     try { 
      DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss"); 
      Date netDate = (new Date(timeStamp)); 
      return sdf.format(netDate); 
     } catch (Exception ex) { 
      return "xx"; 
     } 
    } 
} 

其實我嘗試從我的facebook網頁得到新聞提要,代碼工作正常,但遺憾的是並沒有顯示所有的數組列表,我只得到最後一個元素,數據JSON內容數組[10]。我只得到9號元素,另一個元素不顯示。也許問題與數組列表?有任何想法嗎?我錯過了什麼嗎?凌空JSON數組只能得到最後一個元素

+0

排氣的JsonObjectRequest有一些問題...使用StringRequest代替 – bharath

回答

1

我相信會發生這種情況,因爲每次JSON數組循環播放時,都會用新消息覆蓋文本視圖內容。因此,如果要顯示所有消息,最好將新消息附加到先前循環的消息中,在循環外打印。

  for (int i=0;i<jsonArray.length();i++){ 
        JSONObject data = jsonArray.getJSONObject(i); 

        message += data.getString("message")+"\n";  
       } 
      message_title.setText(message);