零、前言
[1.]封裝了一晚,總算把多條目的listview封裝了一下一、使用
1.初始化資料
2.使用:arraylistmessages = new arraylist<>();
messages.add(new message("你瞅啥?!", "巫纓:", 0));
messages.add(new message("瞅你怎滴!!", "捷特:", 1));
messages.add(new message("2018-8-13", "9:30", 2));
messages.add(new message("你再瞅試試!", "巫纓:", 0));
for (int i = 0; i < 100; i++) else if (i % 3 == 1) else
}
3.必須有個實體類,且繼承itembean類:保證實體類有type屬性//型別和布局id放在hashmap中
hashmaptypemap = new hashmap<>();
typemap.put(0, r.layout.list_item_left);
typemap.put(1, r.layout.list_item_right);
typemap.put(2, r.layout.list_item_center);
mlv.setadapter(new mylvsadapter(this, messages, typemap)
}});
二、具體封裝類/**
*/public class message extends itembean
private string value;
private string name;
public string getname()
public void setname(string name)
public string getvalue()
public void setvalue(string value)
}
1.item類:保證實體類有type屬性
2.介面卡類/**
*/public class itembean
public int gettype()
public void settype(int type)
}
3.holder類public abstract class mylvsadapterextends baseadapter
@override
public int getcount()
@override
public t getitem(int position)
@override
public long getitemid(int position)
@override
public view getview(int position, view convertview, viewgroup parent)
/*** 設定資料抽象方法
** @param holder mylvholder
* @param data 資料
* @param position 位置
* @param type
*/public abstract void setdata(mylvsholder holder, t data, int position, int type);
/*** 根據資料來源的position返回需要顯示的的layout的type
** @param position 位置
* @return
*/@override
public int getitemviewtype(int position)
@override
public int getviewtypecount()
}
附錄、布局public class mylvsholder else
mitemviews.put(i, mitemview);
return;}}
}public listhandlecheckbox(int checkboxid)
cb.setonclicklistener(new view.onclicklistener() else
}});
return mpos;//返回選中的checkbox位置集合
}/**
* 通過viewid獲取控制項
** @param viewid 條目內部控制項的id
* @param 資料泛型
* @return view
*/public t getview(int viewid)
return (t) view;
}public view getconvertview(int type)
public int getposition()
/*** 設定textview文字方法
** @param viewid 條目內部控制項的id
* @param text 文字
* @return mylvholder物件
*/public mylvsholder settext(int viewid, string text)
return this;
}/**
* 通過id設定
** @param viewid 條目內部控制項的id
* @param resid 資源id
* @return mylvholder物件
*/public mylvsholder setimageviewres(int viewid, int resid)
/*** 通過id設定
** @param viewid 條目內部控制項的id
* @param bitmap
* @return mylvholder物件
*/public mylvsholder setimageviewbitmap(int viewid, bitmap bitmap)
}
1.layout/list_item_center.xml
後記、<?xml version="1.0" encoding="utf-8"?>
2.layout/list_item_left.xml
<?xml version="1.0" encoding="utf-8"?>
3.layout/list_item_right.xml
<?xml version="1.0" encoding="utf-8"?>
4.layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
1.宣告:
2.連線傳送門:
3.聯絡我
UE4支援WindowsTouch的技術嘗試
目前我使用的版本是ue4.11,還沒有對pc觸控螢幕做技術支援,我看到國內外 上有很多技術人員要求ue公司提供支援,令人可惜的是到目前還沒有支援。估計可能會在4.14版本支援。鑑於我們專案的情況,我有點等不及了。所以較深入的了解了目前這部分的 狀況,發現了些問題,並提供了一部分解決方法,在這裡和大家...
Git的使用 4 分支的概念和使用
在svn中,分支並不是很便於使用。但是在git中,分支就變成了特別好用的功能呢,受到大多數使用者的青睞。分支中有幾個概念 1 分支 分支就是每一次提交建立的點連線成的線。2 master分支 版本庫建立後,會生成乙個預設的分支,這個分支叫主分支,也叫master分支,所有的分支都圍繞這根分支做擴充套...
物件導向的4要素 抽象,封裝,繼承,多型
在平時說到物件導向的特性的時候,一般的答案有幾種。如果是物件導向的3大基本特徵 抽象,繼承,多型 封裝,繼承,多型 如果是4特徵 抽象,封裝,繼承,多型 可見抽象與封裝這兩個概念其實聯絡是很緊密的。而我確實想要搞清楚具體的含義,今天進行乙個總結。其中關於抽象與封裝,以 大全為主要參考。關於多型以c ...