当前位置:首页 » 安卓系统 » 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、结果

热点内容
新名图配置怎么样 发布:2024-05-19 09:31:30 浏览:94
php获取子节点 发布:2024-05-19 09:21:18 浏览:160
php生成html 发布:2024-05-19 09:20:24 浏览:795
keil编译步骤 发布:2024-05-19 08:58:12 浏览:702
ipad有哪些好用的c语言编译器 发布:2024-05-19 08:41:56 浏览:767
征途手游版脚本 发布:2024-05-19 08:38:11 浏览:165
安卓咪咕音乐怎么录制视频 发布:2024-05-19 07:56:06 浏览:838
如何搞出超大声的听声辨位安卓版 发布:2024-05-19 07:46:21 浏览:927
linux安全模式 发布:2024-05-19 07:27:25 浏览:176
为什么安卓手机安装不了cpk 发布:2024-05-19 07:22:21 浏览:313