Android開發中,ListView控件是非常常用的控件之一,但是默認的ListView控件在性能和滑動流暢度等方面還比較欠缺,于是我們就需要找到一種更好的方法來優化ListView控件。在這篇文章里,我們會介紹一種叫ExtListView的控件,它可以讓你非常容易地顯示來自Json數據源的數據。下面我們就來看看如何使用ExtListView。
public class MainActivity extends AppCompatActivity { private ExtListView listView; private SampleAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ExtListView) findViewById(R.id.list_view); adapter = new SampleAdapter(this, new ArrayList()); listView.setAdapter(adapter); String url = "http://myurl.com/myjsondata.json"; RequestQueue queue = Volley.newRequestQueue(this); JsonRequest jsonRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener () { @Override public void onResponse(JSONArray response) { ArrayList items = new ArrayList<>(); for (int i = 0; i< response.length(); i++) { try { JSONObject obj = response.getJSONObject(i); SampleItem item = new SampleItem(obj.getString("title"), obj.getString("description"), obj.getString("image_url")); items.add(item); } catch (JSONException ex) { ex.printStackTrace(); } } adapter = new SampleAdapter(MainActivity.this, items); listView.setAdapter(adapter); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(MainActivity.this, "An error occurred while getting data from the server.", Toast.LENGTH_SHORT).show(); } }); queue.add(jsonRequest); } }
如你所見,我們在這里使用了Volley庫來解析和獲取Json數據。我們首先創建了一個SampleAdapter來將Json數據轉換為樣本數據。之后我們創建了一個ExtListView實例,并設置了我們的Adapter。最后我們通過Volley庫從服務器獲取Json數據,使用Volley庫的JsonArrayRequest類和RequestQueue類來獲取。當獲取到Json數據后,我們將數據轉換為ArrayList
以上就是使用ExtListView顯示Json數據的全部內容了,這篇文章里的代碼還可以適用于處理其他類型的數據。如果你想要使用自定義布局來顯示數據,只需要重寫SampleAdapter類并使用ExtListAdapter接口。