當前位置:首頁 » 安卓系統 » android更新adapter

android更新adapter

發布時間: 2022-06-23 02:34:40

1. android listview adapter不能及時更新的問題

notifyDataSetChanged只是重新走了adapter的getView()裡面方法,你檢查下是否對傳遞給adapter的值做過調整了,比如你有個flag去更改adapter 你必須在它改變後再notifyDataSetChanged

2. android點擊按鈕更新listview

用個變數保存你的adapter

按鈕監聽器里寫adapter.notifyDataSetChanged();

3. android listview不能刷新 adapter.notifyDataSetChanged()和setListAdapter(myAdapter)都不好用

你沒有往你的Adapter里添加數據。如果你要調用Adapter.notifyDatasetChanged()這個方法,你只能王Adapter裡面的List添加數據,而不能每次都給一個新的List對象,否則也無法
刷新數據

4. android simpleadapter 怎麼更新

使用SimpleAdapter更新ListView裡面的數據:

1 SimpleAdapter notes=new SimpleAdapter(this,list,R.layout.info_row,
2 new String[]{"img","name","desc"},new int[]{R.id.img,R.id.name,R.id.desc});
3 itemlist.setAdapter(notes);
上面代碼中的R.id.img是每行中ImageView的ID號,但是用這種方式,只能更新圖像保存在res/drawable/下面的圖像資源,如上面獲取圖片的代碼改為:

int icon=R.id.image1;
map.put("img",icon);
否則,直接用SimpleAdapter更新一開始獲取的Drawable類型的Icon的圖像時,會出現錯誤:

I/System.out(284): resolveUri failed on bad bitmap uri: android.graphics.drawable.BitmapDrawable@485d7dd0

5. android listview怎麼更新數據

0、本質上是listview綁定Adapter,Adapter關聯List,因此List變化後導致Adapter同步變化;再通過調用adapter.notifyDataSetChanged();方法使得listview界面自動更新。
操作:
1、List<String> strName = new ArrayList<String>();//實際的數據源
2、Adapter adapter = new ArrayAdapter<String>(context,
R.layout.xmlforitem, strName);//適配器,其中 R.layout.xmlforitem是列表中每一項的布局,可以用默認的也可自建,strName則是將數據源綁定到適配器
3、listView.setAdapter(adapter);//將適配器綁定到列表顯示控制項ListView;
4、strName.add("TEST ONE");//增加一項,引起list變化,Adapter也隨之變化;
5、adapter.notifyDataSetChanged();//調用notifyDataSetChanged();更新適配器,ListView會自動刷新,notifyDataSetChanged()方法可能需要在UI線程中調用,建議自行測試;

6、數據增加可能引起內存變化,需防內存溢出;
7、其他。

以上僅供參考,建議多搜索相關文檔。

6. android資料庫更新後怎樣刷新listview數據

重寫onStart(),在裡面加上getData()即可,也就是每次進入這個頁面就刷新數據

7. Android 資料庫如何更新

1、設置一個DB_VERSION

java">publicstaticfinalintDB_VERSION=1;

2、當你要更新表的時候就把DB_VERSION+1,就會觸發onUpgrade,資料庫就更新了,記得採納

publicDBHelper(){
//fortest
Config=newDbManager.DaoConfig()
.setDbName(DB_NAME)
.setDbVersion(DB_VERSION)
.setDbDir(Environment.getExternalStorageDirectory())
.setDbOpenListener(newDbManager.DbOpenListener(){
@Override
publicvoidonDbOpened(DbManagerdb){
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(newDbManager.DbUpgradeListener(){
@Override
publicvoidonUpgrade(DbManagerdb,intoldVersion,intnewVersion){
updateTable(db,xx.class);

}
});
}

8. android怎麼刷新適配器

totalList = list; adapter.notifyDataSetChanged(); totalList.addAll(list); adapter.notifyDataSetChanged(); //這就是刷新適配器的方法

9. android如何在adapter更新數據

data = new ArrayList<Info>(); //存放數據的列表,以後只更新它就可以了
adapter = new page_ListAdapter(this, data); //適配器,一個類,繼承自BaseAdapter
listview.setAdapter(adapter); //列表視圖上綁定適配器
以上幾步就建立了數據與控制項之間的關,以後更新data就可以了,界面會自動刷新。

附:適配器類在大體如下所示:
class page_ListAdapter extends BaseAdapter {
public page_ListAdapter(Activity context, List<Info> list) {
}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

//這里構建每一行的界面
}
}

10. android 數組獲取數據後如何通知adapter更新

1、adpter.notifyDataSetChanged();

2、例子

{
privateListViewlistView;
privateMyAdaptermyAdapter;
privateList<Map<String,Object>>datas;
publicContextcontext;
privateString[]from=newString[]{"color","name"};
privateint[]to=newint[]{R.id.color,R.id.name};

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.file_select_layout);
datas=newArrayList<Map<String,Object>>();
myAdapter=newMyAdapter(context);
listView.setAdapter(myAdapter);
}

publicvoidsetDatas(Stringstr){

// Stringstr="[{"color":"#3EA2FF","name":"居民樓"},{"color":"#FCF1CA","name":"商業樓"},{"color":"#D8424F","name":"單位院"}]";

LayoutInflatermInflater=LayoutInflater.from(context);
Viewview=mInflater.inflate(R.layout.legend_item,null);


if(!TextUtils.isEmpty(str))){

try{
List<Legend>legendList=JSONObject.parseArray(str,Legend.class);
if(legendList!=null){
HashMap<String,Object>map;
for(Legendl:legendList){
map=newHashMap<String,Object>();
map.put(from[0],Color.parseColor(l.getColor()));
map.put(from[1],l.getName());
data.add(map);
}
}
}catch(Exceptione){
//TODO:handleexception
}
}

this.datas=data;
myAdapter.notifyDataSetChanged();

}

{

publicfinalclassViewHolder{
publicImageViewcolor;
publicTextViewname;
}

;

publicMyAdapter(Contextcontext){
this.mInflater=LayoutInflater.from(context);
}

publicintgetCount(){
returndatas.size();
}

publicObjectgetItem(intarg0){
returnnull;
}

publiclonggetItemId(intarg0){
return0;
}

publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
ViewHolderholder=null;
if(convertView==null){
holder=newViewHolder();
convertView=mInflater.inflate(R.layout.legend_item,null);
holder.color=(ImageView)convertView.findViewById(to[0]);
holder.name=(TextView)convertView.findViewById(to[1]);
convertView.setTag(holder);
}else{
holder=(ViewHolder)convertView.getTag();
}

holder.color.setBackgroundColor((Integer)datas.get(position).get(from[0]));
holder.name.setText((String)datas.get(position).get(from[1]));

returnconvertView;
}
}


};

3、分析

setDatas(Stringstr)是設置數據的並更新listView的方法,解析好數據後,調用adpter.notifyDataSetChanged();更新。

4、結果

熱點內容
java介面及實現方法 發布:2024-05-04 11:05:08 瀏覽:566
iphone怎麼清理應用緩存 發布:2024-05-04 11:05:02 瀏覽:409
rest上傳文件 發布:2024-05-04 11:03:19 瀏覽:281
情侶玩游戲解壓視頻 發布:2024-05-04 11:00:57 瀏覽:778
c文件夾大小 發布:2024-05-04 10:54:35 瀏覽:677
回憶源碼 發布:2024-05-04 10:28:20 瀏覽:235
mmm源碼 發布:2024-05-04 09:57:29 瀏覽:262
清除後台緩存的軟體 發布:2024-05-04 09:57:22 瀏覽:833
夢幻西遊有什麼腳本 發布:2024-05-04 09:33:43 瀏覽:717
I編程視頻 發布:2024-05-04 09:33:31 瀏覽:378