首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 的ListActivity刷新,该怎么解决

2013-07-16 
android 的ListActivity刷新按钮响应在MySimpleAdapter这个类里边...代码如下:public class BLShow extend

android 的ListActivity刷新

按钮响应在MySimpleAdapter这个类里边...
代码如下:


public class BLShow extends ListActivity{

Map<String,Object> contacts; 
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
List<Map<String,Object>> list1=new ArrayList<Map<String,Object>>();
private SimpleAdapter adapter;
String number,name,time;
Date date;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.bllistshow);

DatabaseHelper helper = new DatabaseHelper(getBaseContext());
db = helper.getReadableDatabase();
Cursor cursor = db.query(DatabaseHelper.BLACKLIST, new String[] {DatabaseHelper.NAME,DatabaseHelper.NUMBER},
null, null,null,null,null);
cursor.moveToFirst();
while(!cursor.isAfterLast())
{
name = cursor.getString(0);
number = cursor.getString(1);
cursor.moveToNext();

contacts=new  HashMap<String,Object>(); 
        contacts.put("name","姓名: "+name); 
    contacts.put("number","号码: "+number);
    contacts.put("button","删除");
        list.add(contacts);
        contacts=new  HashMap<String,Object>(); 
        contacts.put("name",name); 
    contacts.put("number",number);
        list1.add(contacts);
}

adapter = new MySimpleAdapter(this,list,R.layout.listshow,  
            new String[]{"name","number","button"},   
            new int[]{R.id.listshow_name,R.id.listshow_number,R.id.listshow_btn});
setListAdapter(adapter);
}

private class MySimpleAdapter extends SimpleAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);


if (view != null) {
            Button button = (Button)view.findViewById(R.id.listshow_btn);
            button.setTag(position);
                          //删除按钮响应,点了之后,list没有刷新,怎么弄?            
            button.setOnClickListener(new OnClickListener() 
            {                    
              @Override
              public void onClick(View arg0) 
              {
              int row = (Integer)arg0.getTag();
              contacts = list1.get(row);
              number=contacts.get("number").toString();
              DatabaseHelper helper = new DatabaseHelper(getBaseContext());
            db = helper.getReadableDatabase();
            db.delete(DatabaseHelper.BLACKLIST, DatabaseHelper.NUMBER+"=?", new String[] {number});
               }
             });
}
return view;
}

public MySimpleAdapter(Context context,
List<? extends Map<String, ?>> data, int resource,
String[] from, int[] to) 
{super(context, data, resource, from, to);}
}
}

ListActivity button 刷新


[解决办法]
有一个notify什么的方法,自己看一下吧

listview里展示的数据放在list里面
而看到的view是存着另外一份。

当内存里的list改变了,view不会更新,需要通知界面更新一下。可以百度listview界面更新,应该能找到答案

热点排行