这个问题折腾了我一个下午,结果还是没解决。
主要代码 :
private void updateBusinessItemInfoList() {
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (ShopsActivity.this.businessItemInfoList.size() < 800) {
ShopsActivity.this.businessItemInfoListTemp = ShopsActivity.this
.getBusinessInfo();
} else {
ShopsActivity.this.businessItemInfoListTemp = null;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message message = new Message();
message.what = 1;
//ShopsActivity.this.getHandler().sendMessage(message);
ShopsActivity.this.getHandler().sendEmptyMessageDelayed(message.what, 0);
message = null;
}
}).start();
}
private Handler createHandler() {
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// TODO Auto-generated method stub
switch (msg.what) {
case 1:
if (businessItemInfoListTemp != null) {
//System.out.println("businessItemInfoListTemp---categoryId==0---Thread->"+Thread.currentThread().getId());
//问题出在下面两名
ShopsActivity.this.businessItemInfoList.addAll(businessItemInfoListTemp);
ShopsActivity.this.businessItemAdapter.notifyDataSetChanged();
ShopsActivity.this.loading.setVisibility(View.GONE);
ShopsActivity.this.refreshable = true;
} else {
ShopsActivity.this.loading.setVisibility(View.GONE);
Toast.makeText(ShopsActivity.this,"所有商家都已列出",Toast.LENGTH_LONG).show();
}
break;
case 2:
Intent intent = new Intent();
intent.setClass(ShopsActivity.this, ShopsActivity.class);
ShopsActivity.this.startActivity(intent);
break;
default:
break;
}
}
};
return handler;
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
updateBusinessItemInfoList();
}
/**
* 绑定类别
*/
private void BindCategoryGv()
{
GvCategoryShops = (GridView)findViewById(R.id.GvCategoryShops);
final List<Category> listCat = new CategoryDao().getCategoryList(0);
final List<Map<String,Object>> listItemsCat = new ArrayList<Map<String,Object>>();
for(Category item:listCat)
{
Map<String,Object> listItem = new HashMap<String,Object>();
listItem.put("categoryName", item.getCat_name());
listItemsCat.add(listItem);
}
SimpleAdapter simpleAdapter = new SimpleAdapter(this
, listItemsCat
, R.layout.category_list
, new String[]{"categoryName"}
, new int[]{R.id.TvCategoryNameCategoryList});
GvCategoryShops.setAdapter(simpleAdapter);
GvCategoryShops.setOnItemClickListener(new OnItemClickListener(){