đây là một bài hướng dẫn kỹ thuật xử lý listview cấp cuối, ở đây các bạn có thể tùy biến một listview theo như mong muốn của bạn và cũng có thể quản lý được các đối tượng cũng như các sự kiện nhỏ bên trong nó.
[img]data/attachments/16/16460-4fb9a3277f378924f1ac76d8f8376952.jpg[/img]
1) source code demo:
click vào đây để download source code demo.
2) viewholder là gì?
- là một thuật ngữ nói chung nhằm để tùy chỉnh một view (hiển thị) theo ý của bạn. và bằng thủ thuật này bạn có thể làm chủ được các đối tượng do chính các bạn tạo ra.
- đây là một kỹ thuật lập trình không khó nhưng đòi hỏi các bạn phải hiểu và nắm vững để sử dụng trong các trường hợp xây dựng một ứng dụng có yêu cầu khá cao từ phía khách hành đặt làm ứng dụng.
3) mô tả một ví dụ sử dụng viewholder:
- khách hàng yêu cầu bạn làm 1 ứng dụng mạng xã hội trên di động
- trong số các chức năng, có chức năng kết bạn.
- chức năng này hiển thị ra một danh sách yêu cầu đã gửi đến bạn thông qua 1 listview, và mỗi phần tử của listview có 1 icon ảnh của người gủi yêu cầu, thông tin, tên, nút đồng ý và không đồng ý.
- khi chọn vào image sẽ làm 1 cái gì đó, chạm vào button thì remove item đó khỏi listview ...
[img]data/attachments/16/16458-fbad73d1bd9ad3f29fe5760a44e304ee.jpg[/img]
[img]data/attachments/16/16459-30ef9528d2bdc672452a0acf600e3118.jpg[/img]
4) hướng dẫn code:
- res/values/strings.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<resources> <string name="parsed_data">http://android.vn
hướng dẫn bởi thanhlong90.it</string> <string name="app_name">demoandroid</string> <string name="action_settings">settings</string> <string name="hello_world">hello world!</string> </resources>
- res/adapter_listfriend.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<?[/color][color=#0000bb]xml version[/color][color=#007700]=[/color][color=#dd0000]"1.0" [/color][color=#0000bb]encoding[/color][color=#007700]=[/color][color=#dd0000]"utf-8"[/color][color=#0000bb]?>[/color]<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lineitem" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightsum="7" > <imageview android:id="@+id/imageview" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentdescription="@string/hello_world" android:src="@drawable/ic_launcher" /> <linearlayout android:layout_weight="4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <textview android:id="@+id/textline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="10dip" android:maxlines="1" android:maxlength="10" android:text="0123456788aaaaaaaaaa" android:textsize="15dp" /> <textview android:id="@+id/textline2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textline" android:layout_marginleft="10dip" android:text="bbbbbbbbbbbb" android:textsize="10dp" /> </linearlayout> <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingright="1dp" android:layout_weight="2" android:orientation="horizontal" > <button android:id="@+id/buttonline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentright="true" android:gravity="center" android:text="đồng ý" /> <button android:id="@+id/dbuttonline" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignparentright="true" android:gravity="center" android:text="hủy" /> </linearlayout> </linearlayout>
- activity_main.xml
Mã nguồn PHP:
[color=#000000]
[/color][color=#007700]<[/color][color=#0000bb]linearlayout xmlns[/color][color=#007700]:[/color][color=#0000bb]android[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/apk/res/android" [/color][color=#0000bb]xmlns[/color][color=#007700]:[/color][color=#0000bb]tools[/color][color=#007700]=[/color][color=#dd0000]"http://schemas.android.com/tools" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]orientation[/color][color=#007700]=[/color][color=#dd0000]"vertical" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]paddingbottom[/color][color=#007700]=[/color][color=#dd0000]"@dimen/activity_vertical_margin" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]paddingleft[/color][color=#007700]=[/color][color=#dd0000]"@dimen/activity_horizontal_margin" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]paddingright[/color][color=#007700]=[/color][color=#dd0000]"@dimen/activity_horizontal_margin" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]paddingtop[/color][color=#007700]=[/color][color=#dd0000]"@dimen/activity_vertical_margin" [/color][color=#0000bb]tools[/color][color=#007700]:[/color][color=#0000bb]context[/color][color=#007700]=[/color][color=#dd0000]".mainactivity" [/color][color=#007700]> <[/color][color=#0000bb]textview android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"match_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"wrap_content" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"5dp" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]gravity[/color][color=#007700]=[/color][color=#dd0000]"center" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]text[/color][color=#007700]=[/color][color=#dd0000]"@string/parsed_data" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textappearance[/color][color=#007700]=[/color][color=#dd0000]"?android:attr/textappearancemedium" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]textstyle[/color][color=#007700]=[/color][color=#dd0000]"bold" [/color][color=#007700]/> <[/color][color=#0000bb]listview android[/color][color=#007700]:[/color][color=#0000bb]id[/color][color=#007700]=[/color][color=#dd0000]"@+id/mylist" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_width[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_height[/color][color=#007700]=[/color][color=#dd0000]"fill_parent" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]layout_margintop[/color][color=#007700]=[/color][color=#dd0000]"5dip" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]cachecolorhint[/color][color=#007700]=[/color][color=#dd0000]"#00000000" [/color][color=#0000bb]android[/color][color=#007700]:[/color][color=#0000bb]drawselectorontop[/color][color=#007700]=[/color][color=#dd0000]"false" [/color][color=#007700]/> </[/color][color=#0000bb]linearlayout[/color][color=#007700]>[/color]
- mainactivity.java
Mã nguồn PHP:
[color=#000000]
package android[/color][color=#007700].[/color][color=#0000bb]vn[/color][color=#007700]; [/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]os[/color][color=#007700].[/color][color=#0000bb]bundle[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]app[/color][color=#007700].[/color][color=#0000bb]activity[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]content[/color][color=#007700].[/color][color=#0000bb]context[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]log[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]layoutinflater[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]viewgroup[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]view[/color][color=#007700].[/color][color=#0000bb]onclicklistener[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]baseadapter[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]button[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]filter[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]filterable[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]imageview[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]linearlayout[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]listview[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]textview[/color][color=#007700];[/color][color=#0000bb]import android[/color][color=#007700].[/color][color=#0000bb]widget[/color][color=#007700].[/color][color=#0000bb]toast[/color][color=#007700]; public class [/color][color=#0000bb]mainactivity [/color][color=#007700]extends [/color][color=#0000bb]activity [/color][color=#007700]{ private static [/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]data [/color][color=#007700]= new [/color][color=#0000bb]string[/color][color=#007700][] { [/color][color=#dd0000]"data0"[/color][color=#007700], [/color][color=#dd0000]"data1"[/color][color=#007700], [/color][color=#dd0000]"data2"[/color][color=#007700], [/color][color=#dd0000]"data3"[/color][color=#007700], [/color][color=#dd0000]"data4" [/color][color=#007700], [/color][color=#dd0000]"data5"[/color][color=#007700], [/color][color=#dd0000]"data6"[/color][color=#007700], [/color][color=#dd0000]"data7"[/color][color=#007700], [/color][color=#dd0000]"data8" [/color][color=#007700]}; private static [/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]loinhan [/color][color=#007700]= new [/color][color=#0000bb]string[/color][color=#007700][] {[/color][color=#dd0000]"loinhan0"[/color][color=#007700], [/color][color=#dd0000]"loinhan1"[/color][color=#007700], [/color][color=#dd0000]"loinhan2"[/color][color=#007700], [/color][color=#dd0000]"loinhan3"[/color][color=#007700], [/color][color=#dd0000]"loinhan4"[/color][color=#007700], [/color][color=#dd0000]"loinhan5"[/color][color=#007700], [/color][color=#dd0000]"loinhan6"[/color][color=#007700], [/color][color=#dd0000]"loinhan7"[/color][color=#007700], [/color][color=#dd0000]"loinhan8"[/color][color=#007700]}; private [/color][color=#0000bb]efficientadapter adap[/color][color=#007700]; public [/color][color=#0000bb]listview lv[/color][color=#007700]; @[/color][color=#0000bb]override [/color][color=#007700]protected [/color][color=#0000bb]void oncreate[/color][color=#007700]([/color][color=#0000bb]bundle savedinstancestate[/color][color=#007700]) { [/color][color=#0000bb]super[/color][color=#007700].[/color][color=#0000bb]oncreate[/color][color=#007700]([/color][color=#0000bb]savedinstancestate[/color][color=#007700]); [/color][color=#0000bb]setcontentview[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]activity_main[/color][color=#007700]); [/color][color=#0000bb]lv [/color][color=#007700]= ([/color][color=#0000bb]listview[/color][color=#007700]) [/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]mylist[/color][color=#007700]); [/color][color=#0000bb]adap [/color][color=#007700]= new [/color][color=#0000bb]efficientadapter[/color][color=#007700]([/color][color=#0000bb]this[/color][color=#007700]); [/color][color=#0000bb]lv[/color][color=#007700].[/color][color=#0000bb]setadapter[/color][color=#007700]([/color][color=#0000bb]adap[/color][color=#007700]); } public static class [/color][color=#0000bb]efficientadapter [/color][color=#007700]extends [/color][color=#0000bb]baseadapter [/color][color=#007700]implements [/color][color=#0000bb]filterable[/color][color=#007700]{ private [/color][color=#0000bb]layoutinflater minflater[/color][color=#007700]; private [/color][color=#0000bb]context context[/color][color=#007700]; public [/color][color=#0000bb]efficientadapter[/color][color=#007700]([/color][color=#0000bb]context context[/color][color=#007700]) { [/color][color=#0000bb]minflater [/color][color=#007700]= [/color][color=#0000bb]layoutinflater[/color][color=#007700].[/color][color=#0000bb]from[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700]); [/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]context [/color][color=#007700]= [/color][color=#0000bb]context[/color][color=#007700]; } [/color][color=#ff8000]//thực hiện công việc trên view đang sử dụng [/color][color=#007700]public [/color][color=#0000bb]view getview[/color][color=#007700](final [/color][color=#0000bb]int position[/color][color=#007700], [/color][color=#0000bb]view convertview[/color][color=#007700],[/color][color=#0000bb]viewgroup parent[/color][color=#007700]) { final [/color][color=#0000bb]viewholder holder[/color][color=#007700]; [/color][color=#ff8000]//nếu không tồn tại convertview [/color][color=#007700]if ([/color][color=#0000bb]convertview [/color][color=#007700]== [/color][color=#0000bb]null[/color][color=#007700]) { [/color][color=#0000bb]convertview [/color][color=#007700]= [/color][color=#0000bb]minflater[/color][color=#007700].[/color][color=#0000bb]inflate[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]layout[/color][color=#007700].[/color][color=#0000bb]adapter_listfriend[/color][color=#007700], [/color][color=#0000bb]null[/color][color=#007700]); [/color][color=#0000bb]holder [/color][color=#007700]= new [/color][color=#0000bb]viewholder[/color][color=#007700](); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]linearlayout [/color][color=#007700]= ([/color][color=#0000bb]linearlayout[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]lineitem[/color][color=#007700]); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]icon [/color][color=#007700]= ([/color][color=#0000bb]imageview[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]imageview[/color][color=#007700]); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]textline [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]textline[/color][color=#007700]); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]buttondongy [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]buttonline[/color][color=#007700]); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]buttonhuy [/color][color=#007700]= ([/color][color=#0000bb]button[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]dbuttonline[/color][color=#007700]); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]textline2 [/color][color=#007700]= ([/color][color=#0000bb]textview[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]findviewbyid[/color][color=#007700]([/color][color=#0000bb]r[/color][color=#007700].[/color][color=#0000bb]id[/color][color=#007700].[/color][color=#0000bb]textline2[/color][color=#007700]); [/color][color=#ff8000]//đăng ký lắng nghe khi click vào view này [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#0000bb]log[/color][color=#007700].[/color][color=#0000bb]v[/color][color=#007700]([/color][color=#dd0000]""[/color][color=#007700], [/color][color=#dd0000]"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"[/color][color=#007700]); } }); [/color][color=#ff8000]//đăng ký lắng nghe khi click vào icon của view này [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]icon[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { private [/color][color=#0000bb]int pos [/color][color=#007700]= [/color][color=#0000bb]position[/color][color=#007700]; public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700], [/color][color=#dd0000]"đã đã click vào icon " [/color][color=#007700]+ [/color][color=#0000bb]data[/color][color=#007700][[/color][color=#0000bb]pos[/color][color=#007700]], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_short[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); } }); [/color][color=#ff8000]//đăng ký lắng nghe khi click vào button đồng ý của view này [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]buttondongy[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { private [/color][color=#0000bb]int pos [/color][color=#007700]= [/color][color=#0000bb]position[/color][color=#007700]; public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]linearlayout[/color][color=#007700].[/color][color=#0000bb]removeallviews[/color][color=#007700](); [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700], [/color][color=#dd0000]"đã đồng ý kết bạn với " [/color][color=#007700]+ [/color][color=#0000bb]data[/color][color=#007700][[/color][color=#0000bb]pos[/color][color=#007700]], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_short[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); } }); [/color][color=#ff8000]//đăng ký lắng nghe khi click vào button hủy của view này [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]buttonhuy[/color][color=#007700].[/color][color=#0000bb]setonclicklistener[/color][color=#007700](new [/color][color=#0000bb]onclicklistener[/color][color=#007700]() { private [/color][color=#0000bb]int pos [/color][color=#007700]= [/color][color=#0000bb]position[/color][color=#007700]; public [/color][color=#0000bb]void onclick[/color][color=#007700]([/color][color=#0000bb]view v[/color][color=#007700]) { [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]linearlayout[/color][color=#007700].[/color][color=#0000bb]removeallviews[/color][color=#007700](); [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]maketext[/color][color=#007700]([/color][color=#0000bb]context[/color][color=#007700], [/color][color=#dd0000]"không đồng ý kết bạn với" [/color][color=#007700]+ [/color][color=#0000bb]data[/color][color=#007700][[/color][color=#0000bb]pos[/color][color=#007700]], [/color][color=#0000bb]toast[/color][color=#007700].[/color][color=#0000bb]length_short[/color][color=#007700]).[/color][color=#0000bb]show[/color][color=#007700](); } }); [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]settag[/color][color=#007700]([/color][color=#0000bb]holder[/color][color=#007700]); } else { [/color][color=#0000bb]holder [/color][color=#007700]= ([/color][color=#0000bb]viewholder[/color][color=#007700]) [/color][color=#0000bb]convertview[/color][color=#007700].[/color][color=#0000bb]gettag[/color][color=#007700](); } [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]textline[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700].[/color][color=#0000bb]valueof[/color][color=#007700]([/color][color=#0000bb]position[/color][color=#007700]+[/color][color=#0000bb]1[/color][color=#007700])+[/color][color=#dd0000]". "[/color][color=#007700]+[/color][color=#0000bb]data[/color][color=#007700][[/color][color=#0000bb]position[/color][color=#007700]]); [/color][color=#0000bb]holder[/color][color=#007700].[/color][color=#0000bb]textline2[/color][color=#007700].[/color][color=#0000bb]settext[/color][color=#007700]([/color][color=#dd0000]"lời nhắn: "[/color][color=#007700]+[/color][color=#0000bb]loinhan[/color][color=#007700][[/color][color=#0000bb]position[/color][color=#007700]]); return [/color][color=#0000bb]convertview[/color][color=#007700]; } static class [/color][color=#0000bb]viewholder [/color][color=#007700]{ [/color][color=#0000bb]linearlayout linearlayout[/color][color=#007700]; [/color][color=#0000bb]imageview icon[/color][color=#007700]; [/color][color=#0000bb]textview textline[/color][color=#007700]; [/color][color=#0000bb]textview textline2[/color][color=#007700]; [/color][color=#0000bb]button buttondongy[/color][color=#007700]; [/color][color=#0000bb]button buttonhuy[/color][color=#007700]; } @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]filter getfilter[/color][color=#007700]() { return [/color][color=#0000bb]null[/color][color=#007700]; } @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]long getitemid[/color][color=#007700]([/color][color=#0000bb]int position[/color][color=#007700]) { return [/color][color=#0000bb]0[/color][color=#007700]; } @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]int getcount[/color][color=#007700]() { return [/color][color=#0000bb]data[/color][color=#007700].[/color][color=#0000bb]length[/color][color=#007700]; } @[/color][color=#0000bb]override [/color][color=#007700]public [/color][color=#0000bb]object getitem[/color][color=#007700]([/color][color=#0000bb]int position[/color][color=#007700]) { return [/color][color=#0000bb]data[/color][color=#007700][[/color][color=#0000bb]position[/color][color=#007700]]; } } }[/color]
5) video kết quả demo:
bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: android.vn
pass giải nén: http://android.vn
support: thanhlong90.it@gmail.com
chúc các bạn thành công!
Hướng dẫn vui nhộn về công cụ nong lỗ đít Thuốc giãn hậu môn nghe có vẻ đáng sợ, nhưng đừng sợ! Hướng dẫn này sẽ đưa bạn qua hành trình thú vị khi dùng công cụ làm giãn lỗ đít, khiến nó trở thành...
Hướng dẫn bổ ích về dụng cụ làm giãn "cửa sau" và sử dụng đúng