2012-04-23 83 views
0

這裏是我的列表視圖結構:如何從多個數組加載數據到列表視圖?

________________________ 

Job No : 
Address : 

________________________ 

Job No : 
Address : 

________________________ 

Job No : 
Address : 

________________________ 

所有的工作沒有的都存儲在一個陣列和地址存儲在另一個數組。 如何將這些數組加載到我的列表視圖中。誰能幫我。請

+0

你使用什麼適配器? – candyleung 2012-04-23 09:57:37

+0

請顯示您的適配器 – candyleung 2012-04-23 09:59:08

回答

3

創建自定義適配器..

的僞代碼看起來像下面..

Class Adpter extends BasAdapter{ 
String[] one; 
String[] two; 
public Adpter(String[] one, String[] two){ 
this.one = one; 
this.two= two; 
} 

public getView(convertView){ 

text1.setText(one[position]); 
text12.setText(two[position]); 

} 

} 
0

我建議陣列首先合併到含有保持完整信息的一個行對象一個陣列你的列表視圖。或者,如果信息來自數據庫,則可以使用CursorAdapter。

然後創建一個ViewBinder並將其連接到您的適配器(setViewBinder())。哪一個取決於你的適配器。有例如一個SimpleCursorAdapater.ViewBinder或一個SimpleAdapter.ViewBinder等等。在ViewBinder的setViewValue()方法中,您填充列表視圖中行的字段。在你的例子中,有兩個字段,一個用於工作號和一個用於地址。爲此,您需要爲包含這些字段的列表項目創建自定義佈局。佈局通常在適配器的構造函數中設置。

更多有關ViewBinder是在Android開發者文檔可用。

0

您的列表視圖創建一個適配器,就像沙地建議,然後調用適配器在您的活動。這是我的一個適配器的例子:

public class DictionaryListAdapter extends BaseAdapter { 

private static ArrayList<Term> termsList; 

private LayoutInflater mInflater; 

public DictionaryListAdapter (Context ctx, ArrayList<Term> results){ 
    termsList = results; 
    mInflater = LayoutInflater.from(ctx); 
} 

public int getCount() { 
    // TODO Auto-generated method stub 
    return termsList.size(); 
} 

public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return termsList.get(position); 
} 

public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    ViewHolder holder; 
    if (convertView == null){ 
     convertView = mInflater.inflate(R.layout.dictionarylistinflater, null); 
     holder = new ViewHolder(); 
     holder.tvTerm = (TextView) convertView.findViewById(R.id.tvTerm); 
     holder.tvAbbr = (TextView) convertView.findViewById(R.id.tvAbbreviation); 

     convertView.setTag(holder); 
    } 
    else{ 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.tvTerm.setText(termsList.get(position).getWord()); 
    holder.tvAbbr.setText(termsList.get(position).getAbbr1() + " " +termsList.get(position).getAbbr2()); 

    return convertView; 
} 

static class ViewHolder{ 
    TextView tvTerm; 
    TextView tvAbbr; 
} 

}

這裏就是我如何在活動中把它叫做:

//set the listview 
    final ListView lvTerms = getListView(); 
    lvTerms.setAdapter(new DictionaryListAdapter(this, terms)); 
    lvTerms.setTextFilterEnabled(true); 

我也將採取斯特凡的意見,並結合成一個陣列。對我來說「術語」是一個數組列表,每個術語都有一個全名,兩個縮寫,一個定義和一個公式。祝你好運!

相關問題