2015-01-31 61 views
0

我試圖創建搜索欄,從服務器搜索json數據並將結果呈現在ListView中。數據是以數組的形式存在的。例如從服務器搜索json數組的搜索欄

ProductList: [ 

{ ProductCode: "10012010", 
    ProductName: "Kell", 
    ProductGrammage: "120 gm", 
    ProductBarcode: "89", 
    ProductCatCode: "40", 
    ProductCatName: "Packed Food and Condiments", 
    ProductSubCode: "4001", 
    ProductSubCodeName: "Breakfast & Cereals", 
    ProductMRP: "120", 
    ProductBBPrice: "115" }, 

ect... 

] 

因此,讓我們說我在搜索欄中鍵入凱爾。我想讓這個Kell對象在我的列表視圖中彈出。

+0

在這裏看到我的回答:http://stackoverflow.com/a/19860624/2252830 – pskink 2015-01-31 19:14:16

回答

1

解析JSON並將結果寫入ArrayList。 您需要一個實現Filterable接口並將其設置爲ListViewArrayAdapter

ArrayAdapter應該類似於:

private class PlacesAutoCompleteAdapter extends ArrayAdapter<String> implements Filterable { 
    private ArrayList<String> resultList; 

    public PlacesAutoCompleteAdapter(Context context, int textViewResourceId) { 
     super(context, textViewResourceId); 
    } 

    @Override 
    public int getCount() { 
     return resultList.size(); 
    } 

    @Override 
    public String getItem(int index) { 
     return resultList.get(index); 
    } 

    @Override 
    public Filter getFilter() { 
     Filter filter = new Filter() { 
      @Override 
      protected FilterResults performFiltering(CharSequence constraint) { 
       FilterResults filterResults = new FilterResults(); 
       if (constraint != null) { 
        // Retrieve the autocomplete results. 
        resultList = autocomplete(constraint.toString()); 

        // Assign the data to the FilterResults 
        filterResults.values = resultList; 
        filterResults.count = resultList.size(); 
       } 
       return filterResults; 
      } 

      @Override 
      protected void publishResults(CharSequence constraint, FilterResults results) { 
       if (results != null && results.count > 0) { 
        notifyDataSetChanged(); 
       } 
       else { 
        notifyDataSetInvalidated(); 
       } 
      }}; 
     return filter; 
    } 
} 

代碼從here.

+0

謝謝!我應該如何使我從我的JSON數據獲得的數組ArrayList? – 2015-01-31 23:21:30