在一个fragment里面写了一个SwipeRefreshLayout内含listview。真机运行的时候
listview的内容不会显示,但虚拟机会显示,listview的内容原是自己电脑作为服务器的
jsp传递的,这个下拉刷新两者都能用,请问这是什么原因??怎么解决
贴上代码
package com.example.my_coffeehouse.fragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.example.my_coffeehouse.activity.R;
import com.example.my_coffeehouse.util.Constant;
import com.example.my_coffeehouse.util.HttpUploadUtil;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleAdapter;
/**
- 这是订单页面
- @author Administrator
-
*/
public class Main_OrderFragment extends Fragment {private static final int REFRESH_COMPLETE = 0X110;
private SwipeRefreshLayout mSwipeLayout;
private SimpleAdapter sa;
private View view;
private ListView lv;
private String aurl = Constant.aURL + "/order/AshowOrder.jsp";
private Map params; // 与服务器交互的标识
private Handler handler;
private String[] listArray;@SuppressLint({ "HandlerLeak", "InlinedApi" })
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.main_item_order, container, false);// 这个就相当于你加的布局
params = new HashMap();
params.put("parame1", "wok");
new Thread() {
public void run() {
// 获取服务器端传输到客户端的字符串
String msgStr = HttpUploadUtil.postWithoutFile(aurl, params);
Bundle b = new Bundle();
b.putString("msg", msgStr);
Message msg = new Message();
msg.setData(b);
msg.what = Constant.WORKER;
handler.sendMessage(msg);
}// run
}.start();
mSwipeLayout = (SwipeRefreshLayout) view.findViewById(R.id.order_swipe);
mSwipeLayout.setColorScheme(android.R.color.holo_green_dark,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
mSwipeLayout.setOnRefreshListener(new OnRefreshListener() {public void onRefresh() { handler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 2000); } }); // 将子线程执行的结果,交互主线程 handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case Constant.WORKER: Bundle b = msg.getData(); String m = b.getString("msg"); // 将子线程执行结果,m,交互给主线程UI层,即listView显示。 initData(m); break; case REFRESH_COMPLETE: // mDatas.addAll(Arrays.asList("Lucene", // "Canvas","Bitmap")); // sa.notifyDataSetChanged(); mSwipeLayout.setRefreshing(false); break; default: break; } } };// handler; return view;
}
/**
- 将jsp返回的值进行解析
- @param msg */ private void initData(String msg) { listArray = msg.split("\|"); final int count = listArray.length / 5;// 多少条记录 List> list = new ArrayList>(); Map map = new HashMap(); for (int i = 0; i < count; i++) { map = new HashMap(); map.put("shop", listArray[5 * i + 1]); map.put("content", listArray[5 * i + 4]); map.put("money", listArray[5 * i + 2]); map.put("time", listArray[5 * i + 3]); map.put("transition", "已完成"); list.add(map); } lv = (ListView) view.findViewById(R.id.find_listview); sa = new SimpleAdapter(this.getActivity(), list, R.layout.find_listview_item, new String[] { "shop", "content", "money", "time", "transition" }, new int[] { R.id.find_lv_item_shop, R.id.find_lv_item_content, R.id.find_lv_item_money, R.id.find_lv_item_time, R.id.find_lv_item_transition }); lv.setAdapter(sa);
}
}