listview多種條目展示案例
知識
07-10
[java] view plain copy
- <code
class
="language-java"><span> </span>public
class
myAdapterextends
BaseAdapter {
- <span> </span>//<span> </span>獲得當前條目類型
- <span> </span>
public
int
getItemViewType(int
position) { - <span> </span>// 如果是標題,返回0
- <span> </span>
if
(position == 0 || position == userAppList.size() + 1) { - <span> </span>
return
0; - <span> </span>}
else
{ - <span> </span>// 如果是應用條目,返回1
- <span> </span>
return
1; - <span> </span>}
- <span> </span>}
- <span> </span>//獲得條目種類個數
- <span> </span>@Override
- <span> </span>
public
int
getViewTypeCount() { - <span> </span>
return
super
.getViewTypeCount() + 1; - <span> </span>}
- <span> </span>@Override
- <span> </span>//所有條目總數
- <span> </span>
public
int
getCount() { - <span> </span>
return
systemAppList.size() + userAppList.size() + 2; - <span> </span>}
- <span> </span>/*
- <span> </span> * 返回當前條目
- <span> </span> */
- <span> </span>
public
AppInfo getItem(int
position) { - <span> </span>
if
(position == 0 || position == userAppList.size() + 1) { - <span> </span>
return
null
; - <span> </span>}
else
if
(position < userAppList.size() + 1) { - <span> </span>
return
userAppList.get(position - 1); - <span> </span>}
else
{ - <span> </span>
return
systemAppList.get(position - 2 - userAppList.size()); - <span> </span>}
- <span> </span>}
- <span> </span>@Override
- <span> </span>
public
long
getItemId(int
position) { - <span> </span>
return
position; - <span> </span>}
- <span> </span>@Override
- <span> </span>
public
View getView(int
position, View convertView, ViewGroup parent) {
- <span> </span>
int
type = getItemViewType(position); - <span> </span>// 如果是純文本
- <span> </span>
if
(type == 0) { - <span> </span>ViewTitleHolder vth =
null
; - <span> </span>
- <span> </span>
if
(convertView ==null
) { - <span> </span>convertView = View.inflate(getApplicationContext(),
- <span> </span>R.layout.item_appinfo_title,
null
); - <span> </span>
- <span> </span>vth =
new
ViewTitleHolder(); - <span> </span>vth.title = (TextView) convertView
- <span> </span>.findViewById(R.id.tv_appinfo_title);
- <span> </span>
- <span> </span>convertView.setTag(vth);
- <span> </span>
- <span> </span>}
else
{ - <span> </span>vth = (ViewTitleHolder) convertView.getTag();
- <span> </span>}
- <span> </span>
if
(position == 0) { - <span> </span>vth.title.setText("用戶應用(" + userAppList.size() + ")");
- <span> </span>}
else
{
- <span> </span>vth.title.setText("系統應用(" + systemAppList.size() + ")");
- <span> </span>}
- <span> </span>
return
convertView; - <span> </span>}
else
{ - <span> </span>// 如果是應用介紹
- <span> </span>ViewHolder vh =
null
; - <span> </span>
- <span> </span>
if
(convertView ==null
) { - <span> </span>convertView = View.inflate(getApplicationContext(),
- <span> </span>R.layout.item_appinfo,
null
); - <span> </span>vh =
new
ViewHolder(); - <span> </span>vh.icon = (ImageView) convertView
- <span> </span>.findViewById(R.id.iv_appIcon);
- <span> </span>vh.appName = (TextView) convertView
- <span> </span>.findViewById(R.id.tv_appName);
- <span> </span>vh.appIsSdcard = (TextView) convertView
- <span> </span>.findViewById(R.id.tv_appIsSdcard);
- <span> </span>convertView.setTag(vh);
- <span> </span>}
else
{ - <span> </span>vh = (ViewHolder) convertView.getTag();
- <span> </span>}
- <span> </span>
- <span> </span>AppInfo item = getItem(position);
- <span> </span>vh.icon.setImageDrawable(item.icon);
- <span> </span>vh.appName.setText(item.name);
- <span> </span>
if
(item.isSdcard) { - <span> </span>vh.appIsSdcard.setText("內存儲卡");
- <span> </span>}
else
{ - <span> </span>vh.appIsSdcard.setText("SdCard應用");
- <span> </span>}
- <span> </span>
return
convertView; - <span> </span>}
- <span> </span>}
- <span> </span>}</code>
- private ArrayList<AppInfo> systemAppList; //系統應用信息集合
- private ArrayList<AppInfo> userAppList; //用戶應用信息集合


※JSP和Servlet初級知識點總結
※springboot websocket後台主動推送消息
TAG:程序員小新人學習 |