編輯:關於android開發
---恢復內容開始---
最近在在實現listview功能中遇到了這個問題:
點擊事件寫在了adapter的item中,不知道如在listview的點擊事件中更新activity的點擊事件,折騰了許久,終於解決,以下為實現的步驟:
1.要實現的功能:點擊垃圾桶,刪除該item,具體布局如下圖

2.avtivity將數據封裝成bean對象存在list集合infos中,傳送給adaper
1 //從數據庫中查詢所有數據,dao是數據庫操作對象 2 BlackContactsDao dao = new BlackContactsDao(this); 3 List<BlackContactsInfo> infos = dao.queryALL(); 4 //將返回的數據添加到list集合中,傳送給adapter顯示 5 mdapter = new BlackContactsItemAdapter(this,infos); 6 blackcontactsLvList.setAdapter(mdapter);
3.adaper收到數據後進行顯public class BlackContactsItemAdapter extends BaseAdapter {
List<BlackContactsInfo> infos;
Context context;
String type;
//有參構造,傳進infos數據,跟context
public BlackContactsItemAdapter(Context context, List<BlackContactsInfo> infos) {
this.infos = infos;
this.context =context;
}
@Override
public int getCount() {
return infos.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null) {
convertView = View.inflate(context, R.layout.item_blackcontacts_list, null);
holder = new ViewHolder();
//找控件
holder.ivdele = (ImageView) convertView.findViewById(R.id.blackcontacts_iv_dele);
holder.tvPhone = (TextView) convertView.findViewById(R.id.item_blackcontacts_phone);
holder.tvType = (TextView) convertView.findViewById(R.id.item_blackcontacts_type);
//給converview打上標簽
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
final BlackContactsInfo info ;
info = infos.get(position);
switch (info.type){
case 0:
type = "電話";
break;
case 1:
type = "短信";
break;
case 2:
type = "電話+短信";
break;
}
holder.tvPhone.setText(info.phone);
holder.tvType.setText(type);
//給item中的垃圾桶設置點擊事件
holder.ivdele.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//當垃圾桶被點擊了,就根據被點擊的item的號碼,從數據庫中刪除
BlackContactsDao dao = new BlackContactsDao(context);
dao.delete(info.phone);
//以下下為核心代碼,更新ui
infos.remove(info);
notifyDataSetChanged();
}
});
return convertView;
}
class ViewHolder{
ImageView ivdele;
TextView tvPhone,tvType;
}
}
4.核心代碼:
//在對數據庫進行刪除該數據後,也要對傳給listview的數據(list集合進行更新數據),infos集合要移除點擊的對象
infos.remove(info);
//再調用notifyDataSetChanged();才可以真正實現數據更新。
notifyDataSetChanged();
---恢復內容結束---
Android pendingInten 用法詳解
Android pendingInten 用法詳解 pendingIntent字面意義:等待的,未決定的Intent。 要得到一個pendingIntent對象,使用方法
Android應用開發allowBackup敏感信息洩露的一點反思
Android應用開發allowBackup敏感信息洩露的一點反思 1 背景 其實這篇文章可能有些小題大作,但回過頭想想還是很有必要的,有點陰溝裡翻船的感覺。相信大家都
android listview 替代品recyclerview詳解,recyclerview使用詳解
android listview 替代品recyclerview詳解,recyclerview使用詳解安卓v7支持包下的ListView替代品—&mdash
算法—符號表,算法符號
算法—符號表,算法符號定義:符號表是一種存儲鍵值對的數據結構,支持兩種操作:插入(put),即將一組新的鍵值對存入表中;查找(get),即根據給定的鍵得到相應的值。 1