Android 自定義listview,新增刪除。

2021-08-01 03:58:14 字數 1577 閱讀 2821

不嚴謹,不規範,個人記錄使用。

public

class

base

extends

baseadapter

@override

public

intgetcount()

@override

public object getitem(int position)

@override

public

long

getitemid(int position)

@override

public view getview(int position, view convertview, viewgroup parent) else

string a = list.get(position).get("tj").tostring();

string b = list.get(position).get("todo").tostring();

hode.textview.settext(a);

hode.textview2.settext(b);

return convertview;

}public

final

class

viewhode

}

給base初始時定義乙個layoutinflater和乙個用於傳引數的list(好像hashmap和map有點細小的區別?),重寫乙個viewhoder,定義一下需要用到的控制項(這裡是用到了2個textview)

,乙個checkbox(用來做刪除);

在getview方法中例項化viewhode,判空view,如果為空則用inflater填充寫好的xml檔案,findviewbyid例項化。給view設定tag;

else復用直接獲取;

保證tag之後,從list中獲取資料,載入到對應的地方。返回乙個view;

新增部分:

base =

new base(getactivity(), list);

add.setonclicklistener(new onclicklistener()

});

更新list,然後同步呼叫notify;

刪除;

del.setonclicklistener(new onclicklistener() 

}base.notifydatasetchanged();

}});

獲取listview的總數,

倒著,從最大-1開始,到0,i–;

for迴圈內

例項化對應listview子列的view;

通過view,繫結對應的checkbox,

判斷是否被選中,選中則刪除對應list,同時設checkbox為不選中狀態,呼叫notify重新整理;

bug:新增多了,滑動listview時,核取方塊的勾會亂跑(可解決,沒找到)。

有一次遇到刪除刪的不是選中的行(那次是把base直接在activity裡實現),然而不知怎麼就好了(好像一開始改回來也沒好)。

Android自定義控制項 自定義屬性

自定義屬性的過程 1.在res values資料夾中建立attrs的xml檔案。2.寫入標籤,定義子標籤attr,放入自定義屬性的名稱。format 可以用 來同時使用 1 reference 參考某一資源id 2 color 顏色值 3 boolean 布林值 4 dimension 尺寸值 帶有...

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...

Android自定義控制項之自定義View 二

效果如下圖 1 自定義ringview繼承view新增其構造方法並建立畫筆 public class ringview extends view protected boolean isrunning false public ringview context context public ring...