本文小編為大家詳細介紹“Android中如何利用ListView填充數據”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Android中如何利用ListView填充數據”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
Android ListView填充數據的方法
代碼如下:
public class PriceBoard extends LinearLayout {
private ListView listView;
private List items;
private LinearLayout.LayoutParams params;
public PriceBoard(Context context, AttributeSet attrs) {
super(context, attrs);
items = new ArrayList();
this.setOrientation(HORIZONTAL);
params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
listView = new ListView(context);
listView.setLayoutParams(params);
PriceBoardAdapter priceBoardAdapter = new PriceBoardAdapter(context);
listView.setAdapter(priceBoardAdapter);
addView(listView, params);
}
public void add(PriceData data){
PriceBoardItem item = new PriceBoardItem(this.getContext(),null);
item.setItem(data);
items.add(item);
params.setMargins(10,0,0,2);
// item.setLayoutParams(params);
}
public PriceBoardItem getItemView(int index){
return (PriceBoardItem)items.get(index);
}
private class PriceBoardItem extends LinearLayout{
private TextView nameView;
private TextView enCodeView;
private TextView priceView;
private PriceData priceData;
public PriceBoardItem(Context context, AttributeSet attrs) {
super(context, attrs);
this.setOrientation(HORIZONTAL);
nameView = new TextView(context);
nameView.setTextSize(TypedValue.COMPLEX_UNIT_PX,38);
enCodeView = new TextView(context);
enCodeView.setTextSize(TypedValue.COMPLEX_UNIT_PX,28);
priceView = new TextView(context);
priceView.setTextSize(TypedValue.COMPLEX_UNIT_PX,48);
priceView.setGravity(Gravity.CENTER);
setLayout();
}
public TextView getNameView(){
return nameView;
}
public TextView getEnCodeView(){
return enCodeView;
}
public TextView getPriceView(){
return priceView;
}
public PriceData getPriceData(){
return priceData;
}
private void setLayout(){
LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT,1);
LinearLayout linearLayout = new LinearLayout(getContext());
linearLayout.setOrientation(VERTICAL);
linearLayout.addView(nameView,p);
linearLayout.addView(enCodeView,p);
addView(linearLayout, p);
p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT,1);
linearLayout = new LinearLayout(getContext());
linearLayout.setOrientation(VERTICAL);
linearLayout.addView(priceView,p);
addView(linearLayout, p);
}
public void setItem(PriceData data){
priceData = data;
}
}
private class PriceBoardAdapter extends BaseAdapter{
private Context _context;
public PriceBoardAdapter(Context context){
_context = context;
}
public int getCount(){
return items.size();
}
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
PriceBoardItem view = getItemView(position);
PriceData data = ((PriceBoardItem) items.get(position)).getPriceData();
view.getNameView().setText(data.getName());
view.getEnCodeView().setText(data.getEnCode());
view.getPriceView().setText(String.valueOf(data.getPrice()));
convertView = view;
return convertView;
}
}調用:
PriceBoard priceBoard = new PriceBoard(context,null);
priceData = new PriceData();
priceData.setName("現貨白銀");
priceData.setEnCode("Ag");
priceData.setPrice(4006);
priceBoard.add(priceData);
priceData = new PriceData();
priceData.setName("現貨銅");
priceData.setEnCode("Cu");
priceData.setPrice(43895);
priceBoard.add(priceData);
priceData = new PriceData();
priceData.setName("現貨鎳");
priceData.setEnCode("Ni");
priceData.setPrice(43895);
priceBoard.add(priceData);
addView(priceBoard);效果:

讀到這里,這篇“Android中如何利用ListView填充數據”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。