所以我想在下面創建這個UI。這是一個大學課程,我沒有太多時間了。我有一切工作,但我無法圍繞製作事件清單。我有一個java類eventList,它使用數據庫中的數據填充List。有什麼建議麼?我需要動態添加2個按鈕(上/下)和足夠的文本視圖來提供數據嗎?如果我做這樣的事情,我將如何保持格式化?我應該把它放在主頁上的滾動視圖中嗎?Databind android中的複雜列表
回答
使用自定義適配器將其設置爲ListView
。每行可以被設計爲RelativeLayout
,所以你可以把你的事件名稱,位置等。
適配器將是這個樣子:(代碼消毒)
public class POPublicationAdapter extends ArrayAdapter<Wrap<POUserPublication>> {
private final Context context;
...
private OnClickListener faveClick;
private OnClickListener shortClick;
...
public POPublicationAdapter(Context context, List<WrapPO<POUserPublication>> values,
OnClickListener faveClick, OnClickListener shortClick, ...) {
super(context, R.layout.row_publication, values);
this.context = context;
this.listId = listId;
this.faveClick = faveClick;
this.shortClick = shortClick;
...
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
WrapPO<POUserPublication> item = getItem(position);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = null;
if(item.item != null){
rowView = inflater.inflate(R.layout.row_publication, parent, false);
rowView.setTag(item);
TextView tvLabel = (TextView) rowView.findViewById(R.id....);
ImageView ivPubFavorite = (ImageView) rowView.findViewById(R.id....);
TextView tvSubLabel = (TextView) rowView.findViewById(R.id.publicationSublabel);
tvLabel.setText(item.item.pub().get(PO.displayName));
if(!item.item.pub().existsDefault()) {
}
if(listId == POLayer.LIST_REQUIRED)
tvSubLabel.setText(String.format("(Due on %1$TD)", item.item.asDate(PO.dueDate)));
else if(listId == POLayer.LIST_PREVIEW)
tvSubLabel.setText(String.format("(Preview until %1$TD)", item.item.pub().asDate(PO.distributionDate)));
else
tvSubLabel.setText(item.item.getTouchInfo());
if(this.listId == POLayer.LIST_FAVE){
setOfflineImage(ivPubFavorite, SG.isOnline, item.item.isFavorite() ? R.drawable.ls_star_remove : R.drawable.ls_star_grey);
} else {
setOfflineImage(ivPubFavorite, SG.isOnline, item.item.isFavorite() ? R.drawable.ls_star_gold : R.drawable.ls_star_grey);
}
ivPubFavorite.setClickable(true);
ivPubFavorite.setTag(item);
ivPubFavorite.setOnClickListener(faveClick);
ivNot.setClickable(false);
if(listId == POLayer.LIST_REQUIRED || listId == POLayer.LIST_UNREAD) {
ivNot.setTag(item);
ivNot.setOnClickListener(notClick);
if(item.item.isRequired()) {
if(item.item.isComplete()) {
setOfflineImage(ivNot, item.item.asString(PO.offlineUTC).isEmpty(), R.drawable.ls_doc_confirmed);
} else {
ivNot.setClickable(true);
ivNot.setImageResource(R.drawable.ls_doc_pencil);
}
} else {
if(item.item.isComplete()) {
ivNot.setImageResource(R.drawable.ls_check_green);
} else {
ivNot.setClickable(true);
setOfflineImage(ivNot, SG.isOnline, R.drawable.ls_check_grey);
}
}
} else {
ivNot.setVisibility(View.GONE);
}
} else {
switch(item.itemType) {
case WrapPO.HEADER_EMPTY:
rowView = inflater.inflate(R.layout.row_header_empty, parent, false);
break;
case WrapPO.HEADER_MORE:
rowView = inflater.inflate(R.layout.row_header_more, parent, false);
break;
default:
rowView = inflater.inflate(R.layout.row_header, parent, false);
}
TextView tvLabel = (TextView) rowView.findViewById(R.id.tvHeader);
tvLabel.setText(item.itemHeader);
}
rowView.setOnLongClickListener(longClick);
rowView.setOnClickListener(shortClick);
return rowView;
}
@Override
public long getItemId(int position) {
if(getItem(position).item != null)
return getItem(position).item.asInteger(PO.pubId);
else
return (long) -1;
}
}
這可能是你所需要的更復雜一點的例子,但它說明了如何使用不同的佈局基礎上,一排行的內容,並且它裏面有可點擊的ImageViews,就像你需要投票按鈕一樣。
所以你使用inflater。這段代碼是Fragment UI的一個特性嗎? –
這可能正是我所需要的。我將不得不等待,直到後來嘗試。謝謝。 –
就Fragments而言,這可能在一個片段內,但佈局充氣器是Android的一個組成部分,並且自API 1以來一直存在。請注意,此代碼不會執行convertView或任何其他類型的(推薦)資源保存。 – 323go
- 1. Haskell列表的複雜性
- 2. 列表的複雜排序
- 3. 比較複雜的列表
- 4. Android複雜表格佈局
- 5. 列表視圖中的複雜項目
- 6. a databind下拉列表
- 7. WPF Databind一個列表類
- 8. 大型複雜的列表項在Android中
- 9. python索引複雜列表
- 10. 列表視圖ItemsSource - 複雜 -
- 11. 複雜列表操作
- 12. 複雜列表兒童
- 13. Databind Gridview中只有3列表
- 14. 複雜的動態表格/列表
- 15. 複雜的表
- 16. 複雜Android TextView
- 17. 在jquery post中發佈複雜列表
- 18. 獲取散列表中密鑰列表的時間複雜度?
- 19. 獲取複雜術語列表中的數字列表
- 20. 將列表的複雜列表轉換爲數據框列表
- 21. 從複雜列表創建的設置
- 22. MVC3複雜的JSON列表綁定
- 23. 複雜的列表和整數組合
- 24. 複雜的模型綁定到列表
- 25. 複雜的嵌套列表內涵,PEP8
- 26. 球拍附加列表的複雜性
- 27. 複雜的分組列表項
- 28. 綁定到一個複雜的列表
- 29. 複雜列表的所有組合
- 30. 檢索從複雜的列表(R)
這個線框是否顯示了三個事件的列表,其中每個事件都有一個向上/向下按鈕到左邊,並且(可能)是這些按鈕之間的一個ID? – 323go
@ 323go是的,但數字是從數據庫中提取的該事件的總投票數。每個用戶都可以向上或向下投票。 –
哦,那些投票按鈕... – 323go