微博的项目, setAdapter方法老报空指针错误,应该是数据有问题,解决不了了。
public void refresh(Object... param) {
Log.d("ref", (String)param[0]);
if(((String)param[0]).equals("REF_WEIBO"))
{ List<WeiBoInfo> friends = (List<WeiBoInfo>)param[1]; 这个数据是用 handler异步消息处理message.object传递的 System.out.println(friends.size()); ---这里打印出来20条记录
System.out.println(friends.toArray()); ---这里怎么只有一条数据打印出来呢??
System.out.println("加载数据2");
WeiBoAdapater adapter = new WeiBoAdapater(this,friends);
Msglist.setAdapter(adapter);
}下面是logcat结果
------------------------------------------------------------------------------
没赋值给message.obj之前打印的数据
07-12 09:23:17.324: INFO/System.out(574): [Ljava.lang.Object;@43e35dd8
07-12 09:23:17.363: INFO/System.out(574): [Ljava.lang.Object;@43e76500
07-12 09:23:17.363: INFO/System.out(574): [Ljava.lang.Object;@43e76818
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43edf730
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43edfa50
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43ec3b08
07-12 09:23:17.383: INFO/System.out(574): [Ljava.lang.Object;@43ec3e30
07-12 09:23:17.383: INFO/System.out(574): [Ljava.lang.Object;@43ec4158
07-12 09:23:17.412: INFO/System.out(574): [Ljava.lang.Object;@43ec46b0
07-12 09:23:17.423: INFO/System.out(574): [Ljava.lang.Object;@43ec49e0
07-12 09:23:17.423: INFO/System.out(574): [Ljava.lang.Object;@43ec4d18
07-12 09:23:17.443: INFO/System.out(574): [Ljava.lang.Object;@43f19c90
07-12 09:23:17.453: INFO/System.out(574): [Ljava.lang.Object;@43f1a030
07-12 09:23:17.453: INFO/System.out(574): [Ljava.lang.Object;@43f1a370
07-12 09:23:17.473: INFO/System.out(574): [Ljava.lang.Object;@43e6ddc8
07-12 09:23:17.473: INFO/System.out(574): [Ljava.lang.Object;@43e6e110
07-12 09:23:17.493: INFO/System.out(574): [Ljava.lang.Object;@43e6e460
07-12 09:23:17.513: INFO/System.out(574): [Ljava.lang.Object;@43e6e7b0
07-12 09:23:17.523: INFO/System.out(574): [Ljava.lang.Object;@43f10b58
07-12 09:23:17.553: INFO/System.out(574): [Ljava.lang.Object;@43f10eb0
传递后,打印出来显示有20条
07-12 09:23:17.553: INFO/System.out(574): 20
再打印只有一条记录,哎。烦躁啊
07-12 09:23:17.553: INFO/System.out(574): [Ljava.lang.Object;@43f112f0
public void refresh(Object... param) {
Log.d("ref", (String)param[0]);
if(((String)param[0]).equals("REF_WEIBO"))
{ List<WeiBoInfo> friends = (List<WeiBoInfo>)param[1]; 这个数据是用 handler异步消息处理message.object传递的 System.out.println(friends.size()); ---这里打印出来20条记录
System.out.println(friends.toArray()); ---这里怎么只有一条数据打印出来呢??
System.out.println("加载数据2");
WeiBoAdapater adapter = new WeiBoAdapater(this,friends);
Msglist.setAdapter(adapter);
}下面是logcat结果
------------------------------------------------------------------------------
没赋值给message.obj之前打印的数据
07-12 09:23:17.324: INFO/System.out(574): [Ljava.lang.Object;@43e35dd8
07-12 09:23:17.363: INFO/System.out(574): [Ljava.lang.Object;@43e76500
07-12 09:23:17.363: INFO/System.out(574): [Ljava.lang.Object;@43e76818
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43edf730
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43edfa50
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43ec3b08
07-12 09:23:17.383: INFO/System.out(574): [Ljava.lang.Object;@43ec3e30
07-12 09:23:17.383: INFO/System.out(574): [Ljava.lang.Object;@43ec4158
07-12 09:23:17.412: INFO/System.out(574): [Ljava.lang.Object;@43ec46b0
07-12 09:23:17.423: INFO/System.out(574): [Ljava.lang.Object;@43ec49e0
07-12 09:23:17.423: INFO/System.out(574): [Ljava.lang.Object;@43ec4d18
07-12 09:23:17.443: INFO/System.out(574): [Ljava.lang.Object;@43f19c90
07-12 09:23:17.453: INFO/System.out(574): [Ljava.lang.Object;@43f1a030
07-12 09:23:17.453: INFO/System.out(574): [Ljava.lang.Object;@43f1a370
07-12 09:23:17.473: INFO/System.out(574): [Ljava.lang.Object;@43e6ddc8
07-12 09:23:17.473: INFO/System.out(574): [Ljava.lang.Object;@43e6e110
07-12 09:23:17.493: INFO/System.out(574): [Ljava.lang.Object;@43e6e460
07-12 09:23:17.513: INFO/System.out(574): [Ljava.lang.Object;@43e6e7b0
07-12 09:23:17.523: INFO/System.out(574): [Ljava.lang.Object;@43f10b58
07-12 09:23:17.553: INFO/System.out(574): [Ljava.lang.Object;@43f10eb0
传递后,打印出来显示有20条
07-12 09:23:17.553: INFO/System.out(574): 20
再打印只有一条记录,哎。烦躁啊
07-12 09:23:17.553: INFO/System.out(574): [Ljava.lang.Object;@43f112f0
07-12 09:23:17.363: INFO/System.out(574): [Ljava.lang.Object;@43e76500
07-12 09:23:17.363: INFO/System.out(574): [Ljava.lang.Object;@43e76818
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43edf730
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43edfa50
07-12 09:23:17.372: INFO/System.out(574): [Ljava.lang.Object;@43ec3b08
07-12 09:23:17.383: INFO/System.out(574): [Ljava.lang.Object;@43ec3e30
07-12 09:23:17.383: INFO/System.out(574): [Ljava.lang.Object;@43ec4158
07-12 09:23:17.412: INFO/System.out(574): [Ljava.lang.Object;@43ec46b0
07-12 09:23:17.423: INFO/System.out(574): [Ljava.lang.Object;@43ec49e0
07-12 09:23:17.423: INFO/System.out(574): [Ljava.lang.Object;@43ec4d18
07-12 09:23:17.443: INFO/System.out(574): [Ljava.lang.Object;@43f19c90
07-12 09:23:17.453: INFO/System.out(574): [Ljava.lang.Object;@43f1a030
07-12 09:23:17.453: INFO/System.out(574): [Ljava.lang.Object;@43f1a370
07-12 09:23:17.473: INFO/System.out(574): [Ljava.lang.Object;@43e6ddc8
07-12 09:23:17.473: INFO/System.out(574): [Ljava.lang.Object;@43e6e110
07-12 09:23:17.493: INFO/System.out(574): [Ljava.lang.Object;@43e6e460
07-12 09:23:17.513: INFO/System.out(574): [Ljava.lang.Object;@43e6e7b0
07-12 09:23:17.523: INFO/System.out(574): [Ljava.lang.Object;@43f10b58
07-12 09:23:17.553: INFO/System.out(574): [Ljava.lang.Object;@43f10eb0
int count = friends.size();
for(int i =0 ;i < count; i++){
System.out.println(i+"条数据"+friends.get(i));
}楼主把你每条数据打印出来 我怀疑你的数据传过来的有问题 、、
System.out.println(friends.toArray()) 相当于System.out.println(friends.toArray().toString)
Object的toString是这样的返回类名和hashCode
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
你应该重写WeiBoInfo的toString,再用System.out.println(friends.toString());
07-12 10:27:55.692: INFO/System.out(649): [Ljava.lang.Object;@43e77f10
07-12 10:27:55.703: INFO/System.out(649): [Ljava.lang.Object;@43f197d0
07-12 10:27:55.714: INFO/System.out(649): [Ljava.lang.Object;@43f19ac0
07-12 10:27:55.723: INFO/System.out(649): [Ljava.lang.Object;@43e74380
07-12 10:27:55.732: INFO/System.out(649): [Ljava.lang.Object;@43e6ee00
07-12 10:27:55.732: INFO/System.out(649): [Ljava.lang.Object;@43e6f120
07-12 10:27:55.732: INFO/System.out(649): [Ljava.lang.Object;@43e6e858
07-12 10:27:55.744: INFO/System.out(649): [Ljava.lang.Object;@43e6eb80
07-12 10:27:55.752: INFO/System.out(649): [Ljava.lang.Object;@43ed6d30
07-12 10:27:55.752: INFO/System.out(649): [Ljava.lang.Object;@43ed7060
07-12 10:27:55.752: INFO/System.out(649): [Ljava.lang.Object;@43e343f0
07-12 10:27:55.762: INFO/System.out(649): [Ljava.lang.Object;@43e34728
07-12 10:27:55.762: INFO/System.out(649): [Ljava.lang.Object;@43f1b338
07-12 10:27:55.762: INFO/System.out(649): [Ljava.lang.Object;@43f1b678
07-12 10:27:55.792: INFO/System.out(649): [Ljava.lang.Object;@43e71da0
07-12 10:27:55.802: INFO/System.out(649): [Ljava.lang.Object;@43e720e8
07-12 10:27:55.802: INFO/System.out(649): [Ljava.lang.Object;@43e36988
07-12 10:27:55.802: INFO/System.out(649): [Ljava.lang.Object;@43e36cd8
07-12 10:27:55.822: INFO/System.out(649): [Ljava.lang.Object;@43ee6948
07-12 10:27:55.845: INFO/System.out(649): [Ljava.lang.Object;@43ee6ca0
07-12 10:27:55.845: INFO/System.out(649): 20
07-12 10:27:55.852: INFO/System.out(649): [Ljava.lang.Object;@43ec4268
07-12 10:27:55.852: INFO/System.out(649): --------------------------
07-12 10:27:55.852: INFO/System.out(649): 0条数据com.itcast.util.WeiBoInfo@43efe8c8
07-12 10:27:55.852: INFO/System.out(649): 1条数据com.itcast.util.WeiBoInfo@43f197a8
07-12 10:27:55.852: INFO/System.out(649): 2条数据com.itcast.util.WeiBoInfo@43e74060
07-12 10:27:55.852: INFO/System.out(649): 3条数据com.itcast.util.WeiBoInfo@43e74358
07-12 10:27:55.852: INFO/System.out(649): 4条数据com.itcast.util.WeiBoInfo@43e6edd8
07-12 10:27:55.852: INFO/System.out(649): 5条数据com.itcast.util.WeiBoInfo@43e6f0f8
07-12 10:27:55.852: INFO/System.out(649): 6条数据com.itcast.util.WeiBoInfo@43e6e830
07-12 10:27:55.852: INFO/System.out(649): 7条数据com.itcast.util.WeiBoInfo@43e6eb58
07-12 10:27:55.852: INFO/System.out(649): 8条数据com.itcast.util.WeiBoInfo@43ed6d08
07-12 10:27:55.852: INFO/System.out(649): 9条数据com.itcast.util.WeiBoInfo@43ed7038
07-12 10:27:55.852: INFO/System.out(649): 10条数据com.itcast.util.WeiBoInfo@43e343c8
07-12 10:27:55.852: INFO/System.out(649): 11条数据com.itcast.util.WeiBoInfo@43e34700
07-12 10:27:55.852: INFO/System.out(649): 12条数据com.itcast.util.WeiBoInfo@43f1b2b0
07-12 10:27:55.852: INFO/System.out(649): 13条数据com.itcast.util.WeiBoInfo@43f1b650
07-12 10:27:55.873: INFO/System.out(649): 14条数据com.itcast.util.WeiBoInfo@43e71d78
07-12 10:27:55.873: INFO/System.out(649): 15条数据com.itcast.util.WeiBoInfo@43e720c0
07-12 10:27:55.873: INFO/System.out(649): 16条数据com.itcast.util.WeiBoInfo@43e36960
07-12 10:27:55.883: INFO/System.out(649): 17条数据com.itcast.util.WeiBoInfo@43e36cb0
07-12 10:27:55.883: INFO/System.out(649): 18条数据com.itcast.util.WeiBoInfo@43ee68a0
07-12 10:27:55.883: INFO/System.out(649): 19条数据com.itcast.util.WeiBoInfo@43ee6c78这个是什么问题呢?
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
就像上面打印的com.itcast.util.WeiBoInfo@43ee6c78
这个其实是用网上沈大海的那个源码改动一点。public void run() {
// TODO Auto-generated method stub
if(weibo==null)
{ weibo=new Weibo();
AccessToken at=OAuthReadUtil.readToken(this);
if(at!=null)
{weibo.setToken(at.getToken(), at.getTokenSecret());
}
}
while(isrun)
{ Task lasttask=null;
Log.d("core Logic", "..............run");
synchronized(allTask)
{
if(allTask.size()>0)
{
lasttask=allTask.get(0);
}
doTask(lasttask);
}
try{Thread.sleep(1000);}catch(Exception e){}
}
}
//执行任务
public void doTask(Task task)
{Message message=hand.obtainMessage();
try{
switch(task.getTaskID())
{case Task.TASK_USER_LOGIN://用户登录
break;
case Task.TASK_GET_USER_HOMETIMEINLINE://获取用户首页微博信息
UserInfo user=ConfigHelper.nowUser;
OAuth auth=new OAuth();
String url = "http://api.t.sina.com.cn/statuses/friends_timeline.json";
List params=new ArrayList();
params.add(new BasicNameValuePair("source", auth.consumerKey));
HttpResponse response =auth.SignRequest(user.getToken(), user.getTokenSecret(), url, params);
if (200 == response.getStatusLine().getStatusCode()){
try {
InputStream is = response.getEntity().getContent();
Reader reader = new BufferedReader(new InputStreamReader(is), 4000);
StringBuilder buffer = new StringBuilder((int) response.getEntity().getContentLength());
try {
char[] tmp = new char[1024];
int l;
while ((l = reader.read(tmp)) != -1) {
buffer.append(tmp, 0, l);
}
} finally {
reader.close();
}
String string = buffer.toString();
//Log.e("json", "rs:" + string);
response.getEntity().consumeContent();
JSONArray data=new JSONArray(string);
for(int i=0;i<data.length();i++)
{
JSONObject d=data.getJSONObject(i);
//Log.e("json", "rs:" + d.getString("created_at"));
if(d!=null){
JSONObject u=d.getJSONObject("user");
if(d.has("retweeted_status")){
JSONObject r=d.getJSONObject("retweeted_status");
}
String id=d.getString("id");
String userId=u.getString("id");
String userName=u.getString("screen_name");
String userIcon=u.getString("profile_image_url");
Log.e("userIcon", userIcon);
String time=d.getString("created_at");
String text=d.getString("text");
Boolean haveImg=false;
if(d.has("thumbnail_pic")){
haveImg=true;
//String thumbnail_pic=d.getString("thumbnail_pic");
//Log.e("thumbnail_pic", thumbnail_pic);
}
if(wbList==null){
wbList=new ArrayList<WeiBoInfo>();
}
WeiBoInfo w=new WeiBoInfo();
w.setId(id);
w.setUserId(userId);
w.setUserName(userName);
w.setTime(time);
w.setText(text);
w.setHaveImage(haveImg);
w.setUserIcon(userIcon);
wbList.add(w);
System.out.println(wbList.toArray());
}
}
}catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
message.obj=wbList;
break;
hand.sendMessage(message);
} --------主线程回调--------------------------------------------------
public Handler hand=new Handler()
{ @Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch(msg.what)
{
case Task.TASK_USER_LOGIN:
IWeiboActivity ha=MainService.getActivityByName("LoginActivity");
ha.refresh(LoginActivity.REF_LOGIN_RESULT,msg.obj);
break;
case Task.TASK_GET_USER_HOMETIMEINLINE://更新Weibo首页
IWeiboActivity hha=MainService.getActivityByName("HomeActivity");
hha.refresh(HomeActivity.REF_WEIBO,msg.obj);这边就调用到首页的微博Activity的refresh方法,里面两个参数,REF_WEIBO分别对应refresh(Object... param)的 param[0]和param[1].....
1.不能打印只能打印一条是没重写toString2.空指针问题 我试过在handleMessage传进的msg在处理完后,msg会自动重置,msg.obj会为null.
可以试试把super.handleMessage(msg);放在handleMessage的最后面
或者msg一传进来重新new个WeiBoInfo实例把msg.obj拷贝过来。
呵呵 看到就回了 有错误最好把错误Log也贴上来好看些
下面这些代码就可以简化下了
public void refresh(Object... param) {
Log.d("ref", (String)param[0]);
if(((String)param[0]).equals("REF_WEIBO"))
{
WeiBoAdapater adapter = new WeiBoAdapater(this,(ArrayList<WeiBoInfo>)param[1]);
Msglist.setAdapter(adapter);
}
int count = wbList.size();
for(int k =0 ;k < count; k++){
System.out.println(k+"条未传递wbList数据"+wbList.get(k));
}07-12 14:00:44.178: INFO/System.out(621): 0条未传递wbList数据com.itcast.util.WeiBoInfo@437a27b0
07-12 14:00:44.178: INFO/System.out(621): 1条未传递wbList数据com.itcast.util.WeiBoInfo@437942f8
07-12 14:00:44.178: INFO/System.out(621): 2条未传递wbList数据com.itcast.util.WeiBoInfo@437918e0
07-12 14:00:44.188: INFO/System.out(621): 3条未传递wbList数据com.itcast.util.WeiBoInfo@4375cd58
07-12 14:00:44.188: INFO/System.out(621): 4条未传递wbList数据com.itcast.util.WeiBoInfo@4383e3e8
07-12 14:00:44.188: INFO/System.out(621): 5条未传递wbList数据com.itcast.util.WeiBoInfo@4383d320
07-12 14:00:44.188: INFO/System.out(621): 6条未传递wbList数据com.itcast.util.WeiBoInfo@43823a00
07-12 14:00:44.188: INFO/System.out(621): 7条未传递wbList数据com.itcast.util.WeiBoInfo@43821ee8
07-12 14:00:44.198: INFO/System.out(621): 8条未传递wbList数据com.itcast.util.WeiBoInfo@438217c0
07-12 14:00:44.198: INFO/System.out(621): 9条未传递wbList数据com.itcast.util.WeiBoInfo@4381f098
07-12 14:00:44.198: INFO/System.out(621): 10条未传递wbList数据com.itcast.util.WeiBoInfo@4381c160
07-12 14:00:44.198: INFO/System.out(621): 11条未传递wbList数据com.itcast.util.WeiBoInfo@43819790
07-12 14:00:44.208: INFO/System.out(621): 12条未传递wbList数据com.itcast.util.WeiBoInfo@438176f8
07-12 14:00:44.208: INFO/System.out(621): 13条未传递wbList数据com.itcast.util.WeiBoInfo@43813dd8
07-12 14:00:44.208: INFO/System.out(621): 14条未传递wbList数据com.itcast.util.WeiBoInfo@4380d288
07-12 14:00:44.208: INFO/System.out(621): 15条未传递wbList数据com.itcast.util.WeiBoInfo@437f23d0
07-12 14:00:44.208: INFO/System.out(621): 16条未传递wbList数据com.itcast.util.WeiBoInfo@437ef5c8
07-12 14:00:44.228: INFO/System.out(621): 17条未传递wbList数据com.itcast.util.WeiBoInfo@437c2d30
07-12 14:00:44.228: INFO/System.out(621): 18条未传递wbList数据com.itcast.util.WeiBoInfo@437b58e8
07-12 14:00:44.238: INFO/System.out(621): 19条未传递wbList数据com.itcast.util.WeiBoInfo@437a052007-12 14:00:44.258: INFO/System.out(621): 0条传递后friends数据com.itcast.util.WeiBoInfo@437a27b0
07-12 14:00:44.258: INFO/System.out(621): 1条传递后friends数据com.itcast.util.WeiBoInfo@437942f8
07-12 14:00:44.268: INFO/System.out(621): 2条传递后friends数据com.itcast.util.WeiBoInfo@437918e0
07-12 14:00:44.268: INFO/System.out(621): 3条传递后friends数据com.itcast.util.WeiBoInfo@4375cd58
07-12 14:00:44.268: INFO/System.out(621): 4条传递后friends数据com.itcast.util.WeiBoInfo@4383e3e8
07-12 14:00:44.268: INFO/System.out(621): 5条传递后friends数据com.itcast.util.WeiBoInfo@4383d320
07-12 14:00:44.268: INFO/System.out(621): 6条传递后friends数据com.itcast.util.WeiBoInfo@43823a00
07-12 14:00:44.278: INFO/System.out(621): 7条传递后friends数据com.itcast.util.WeiBoInfo@43821ee8
07-12 14:00:44.278: INFO/System.out(621): 8条传递后friends数据com.itcast.util.WeiBoInfo@438217c0
07-12 14:00:44.278: INFO/System.out(621): 9条传递后friends数据com.itcast.util.WeiBoInfo@4381f098
07-12 14:00:44.278: INFO/System.out(621): 10条传递后friends数据com.itcast.util.WeiBoInfo@4381c160
07-12 14:00:44.299: INFO/System.out(621): 11条传递后friends数据com.itcast.util.WeiBoInfo@43819790
07-12 14:00:44.299: INFO/System.out(621): 12条传递后friends数据com.itcast.util.WeiBoInfo@438176f8
07-12 14:00:44.308: INFO/System.out(621): 13条传递后friends数据com.itcast.util.WeiBoInfo@43813dd8
07-12 14:00:44.308: INFO/System.out(621): 14条传递后friends数据com.itcast.util.WeiBoInfo@4380d288
07-12 14:00:44.308: INFO/System.out(621): 15条传递后friends数据com.itcast.util.WeiBoInfo@437f23d0
07-12 14:00:44.318: INFO/System.out(621): 16条传递后friends数据com.itcast.util.WeiBoInfo@437ef5c8
07-12 14:00:44.318: INFO/System.out(621): 17条传递后friends数据com.itcast.util.WeiBoInfo@437c2d30
07-12 14:00:44.318: INFO/System.out(621): 18条传递后friends数据com.itcast.util.WeiBoInfo@437b58e8
07-12 14:00:44.318: INFO/System.out(621): 19条传递后friends数据com.itcast.util.WeiBoInfo@437a0520
07-12 14:00:44.328: INFO/System.out(621): 0条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437a27b007-12 14:00:44.338: INFO/System.out(621): 1条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437942f8
07-12 14:00:44.338: INFO/System.out(621): 2条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437918e0
07-12 14:00:44.338: INFO/System.out(621): 3条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@4375cd58
07-12 14:00:44.338: INFO/System.out(621): 4条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@4383e3e8
07-12 14:00:44.338: INFO/System.out(621): 5条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@4383d320
07-12 14:00:44.348: INFO/System.out(621): 6条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43823a00
07-12 14:00:44.348: INFO/System.out(621): 7条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43821ee8
07-12 14:00:44.348: INFO/System.out(621): 8条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438217c0
07-12 14:00:44.358: INFO/System.out(621): 9条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@4381f098
07-12 14:00:44.358: INFO/System.out(621): 10条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@4381c160
07-12 14:00:44.368: INFO/System.out(621): 11条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43819790
07-12 14:00:44.378: INFO/System.out(621): 12条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438176f8
07-12 14:00:44.378: INFO/System.out(621): 13条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43813dd8
07-12 14:00:44.378: INFO/System.out(621): 14条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@4380d288
07-12 14:00:44.388: INFO/System.out(621): 15条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437f23d0
07-12 14:00:44.388: INFO/System.out(621): 16条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437ef5c8
07-12 14:00:44.388: INFO/System.out(621): 17条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437c2d30
07-12 14:00:44.401: INFO/System.out(621): 18条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437b58e8
07-12 14:00:44.401: INFO/System.out(621): 19条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@437a052007-12 14:00:44.408: ERROR/AndroidRuntime(621): Uncaught handler: thread main exiting due to uncaught exception
07-12 14:00:44.418: ERROR/AndroidRuntime(621): java.lang.NullPointerException
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at com.itcast.ui.HomeActivity.refresh(HomeActivity.java:164) 这一行就是Msglist.setAdapter(adapter);
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at com.itcast.logic.MainService$1.handleMessage(MainService.java:340)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at android.os.Handler.dispatchMessage(Handler.java:99)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at android.os.Looper.loop(Looper.java:123)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at android.app.ActivityThread.main(ActivityThread.java:4203)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at java.lang.reflect.Method.invokeNative(Native Method)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at java.lang.reflect.Method.invoke(Method.java:521)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
07-12 14:00:44.418: ERROR/AndroidRuntime(621): at dalvik.system.NativeStart.main(Native Method)
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>" + adapter== null);
打印看下到底Msglist 和adapter这2个哪个是null
07-12 14:25:19.032: INFO/System.out(664): false哎,欲哭无泪。The application has stopped unexpectedly,please try again.我都看呕心了。。呵呵
可能对我来说永远是个迷了ORZ.....
//Adapterclass WeiBoAdapater extends BaseAdapter
{ private AsyncImageLoader asyncImageLoader;
private List<WeiBoInfo> wbList;
Context context;
public WeiBoAdapater(Context con,List<WeiBoInfo> list) {
this.context=con;
this.wbList=list;
}@Override
public int getCount() {
return wbList.size();
}@Override
public Object getItem(int position) {
return wbList.get(position);
}@Override
public long getItemId(int position) {
return position;
}@Override
public View getView(int position, View convertView, ViewGroup parent) {
asyncImageLoader = new AsyncImageLoader();
convertView = LayoutInflater.from(this.context).inflate(R.layout.itemview, null);
WeiBoHolder wh = new WeiBoHolder();
wh.wbicon = (ImageView) convertView.findViewById(R.id.ivItemPortrait);
wh.wbtext = (TextView) convertView.findViewById(R.id.tvItemContent);
wh.wbtime = (TextView) convertView.findViewById(R.id.tvItemDate);
wh.wbuser = (TextView) convertView.findViewById(R.id.tvItemName);
wh.wbimage=(ImageView) convertView.findViewById(R.id.contentPic);
WeiBoInfo wb = wbList.get(position);
if(wb!=null){
convertView.setTag(wb.getId());
wh.wbuser.setText(wb.getUserName());
wh.wbtime.setText(wb.getTime());
wh.wbtext.setText(wb.getText(), TextView.BufferType.SPANNABLE); Drawable cachedImage = asyncImageLoader.loadDrawable(wb.getUserIcon(),wh.wbicon, new ImageCallback(){ @Override
public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {
imageView.setImageDrawable(imageDrawable);
}
}); wh.wbicon.setImageDrawable(cachedImage); }
return convertView;
}
//-----------------------------------------------
WeiBoAdapater adapter = new WeiBoAdapater(HomeActivity.this,friends);
//--------------------------------------------------
int ct= adapter.getCount();
for(int j=0;j<ct;j++){
System.out.println(j+"条adpter初始化后wbList数据"+adapter.getItem(j));}
//---------------------------------------------------------执行结果:
07-12 15:00:30.399: INFO/System.out(771): 0条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43873cd8
07-12 15:00:30.399: INFO/System.out(771): 1条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43873de0
07-12 15:00:30.408: INFO/System.out(771): 2条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43873ea0
07-12 15:00:30.408: INFO/System.out(771): 3条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43873f60
07-12 15:00:30.408: INFO/System.out(771): 4条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874038
07-12 15:00:30.418: INFO/System.out(771): 5条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438740f8
07-12 15:00:30.418: INFO/System.out(771): 6条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438741b8
07-12 15:00:30.418: INFO/System.out(771): 7条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874278
07-12 15:00:30.418: INFO/System.out(771): 8条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874338
07-12 15:00:30.418: INFO/System.out(771): 9条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438743f8
07-12 15:00:30.428: INFO/System.out(771): 10条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438744b8
07-12 15:00:30.428: INFO/System.out(771): 11条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874578
07-12 15:00:30.438: INFO/System.out(771): 12条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874638
07-12 15:00:30.438: INFO/System.out(771): 13条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874770
07-12 15:00:30.438: INFO/System.out(771): 14条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874830
07-12 15:00:30.438: INFO/System.out(771): 15条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438748f0
07-12 15:00:30.448: INFO/System.out(771): 16条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@438749b0
07-12 15:00:30.448: INFO/System.out(771): 17条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874a70
07-12 15:00:30.448: INFO/System.out(771): 18条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874b30
07-12 15:00:30.448: INFO/System.out(771): 19条adpter初始化后wbList数据com.itcast.util.WeiBoInfo@43874bf0
@Override
public View getView(int position, View convertView, ViewGroup parent) {
asyncImageLoader = new AsyncImageLoader();
WeiBoHolder wh = null;
if (null == convertView){
convertView = LayoutInflater.from(this.context).inflate(R.layout.itemview, null);
wh = new WeiBoHolder();
wh.wbicon = (ImageView) convertView.findViewById(R.id.ivItemPortrait);
wh.wbtext = (TextView) convertView.findViewById(R.id.tvItemContent);
wh.wbtime = (TextView) convertView.findViewById(R.id.tvItemDate);
wh.wbuser = (TextView) convertView.findViewById(R.id.tvItemName);
wh.wbimage=(ImageView) convertView.findViewById(R.id.contentPic);
convertView.setTag(wh);
}else{
wh = (WeiBoHolder)convertView.getTag();
}
WeiBoInfo wb = wbList.get(position);
if(wb!=null){
wh.wbuser.setText(wb.getUserName());
wh.wbtime.setText(wb.getTime());
wh.wbtext.setText(wb.getText(), TextView.BufferType.SPANNABLE); Drawable cachedImage = asyncImageLoader.loadDrawable(wb.getUserIcon(),wh.wbicon, new ImageCallback(){ @Override
public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {
imageView.setImageDrawable(imageDrawable);
}
}); wh.wbicon.setImageDrawable(cachedImage); }
return convertView;
}
{ Task lasttask=null;
Log.d("core Logic", "..............run");
synchronized(allTask)
{
if(allTask.size()>0) ///这里你能确保alltask的size大于0吗 {
lasttask=allTask.get(0);
}
doTask(lasttask);
}
try{Thread.sleep(1000);}catch(Exception e){}
ListView Msglist=(ListView)findViewById(R.id.freelook_listview);感谢各位朋友指点。收获很多,
声明在onCreate和refresh里面不一样吗?它们不在一个类?
然后在onCreate方法里初始化:Msglist=(ListView)findViewById(R.id.freelook_listview)。最后在refresh方法里面调用
我擦。。哥 Msglist你没有定义成 类得成员变量。 这样定义相当于 Msglist变量只在onCreate 方法里有效。还是略奇葩了