public class MyHandler extends android.os.Handler
{
public MyHandler() { } public MyHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
Bundle b = msg.getData();
Mp3Info mp3 = (Mp3Info) b.getSerializable("mp3_key");
HashMap<String, String> map=new HashMap<String, String>();
map.put("mp3_Name", mp3.getMp3_primaryKey()+"");
map.put("mp3_artist", mp3.getMp3_Name());
list.add(map);
SimpleAdapter simple=new SimpleAdapter(LocalMp3ListActity.this, list, R.layout.localhost_layout_mp3_list,new String[]{"mp3_Name","mp3_artist"}, new int[]{R.id.mp3_Name,R.id.mp3_artist});
setListAdapter(simple);
super.handleMessage(msg);

}

}因为是递归出的sdcard文件,所以我想在这里面动态添加listView内容,之前没采用多线的时候是可以的,绑定的地方是对的,但是我复制到这里的时候,就提示说,数据类型错误(java.lang.IllegaStateException),请高手指点一下,因为之前是这么绑定的,所以不想采用别的方式绑定,麻烦大侠在我这种绑定的基础上修改一下,小弟不胜感激,在线等

解决方案 »

  1.   

    尝试一下在你的无参构造器里调用父类构造器,因为Handler的无参构造器里将获取looper对象。
      

  2.   

    第2个不是有super looper了吗
      

  3.   

       public MyHandler() {
                    super() ; //请调用父类的 ,并且选择合适的MyHandler构造器。
            }
    。 
      希望你能多附加错误信息,因为一般错误信息都会准确定位到几行的 。   如果你序列化的类没错的话 , 我猜想可能是你不在UI线程更新的。