sim_adapter.notifyDataSetChanged 切换fragment后不刷新,使用的是NavigationDrawerFragment

对你爱爱爱不完 2016-09-24 11:26:17
public class SensorFragment extends Fragment {

private GridView gv_sensor;
private List<Map<String, Object>> data_list;
private SimpleAdapter sim_adapter;
private MyApplication myapp;
boolean ebool=false;

private Handler handler = new Handler() {
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.what == 0x127) {
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = sDateFormat.format(new java.util.Date());
byte[] temp = (byte[]) msg.obj;
int type = 0;
String smacaddr = "";
int jj = 0;
int intbegin = (int) temp[1];
switch (temp[6]) {
case (byte) 'E':// 温湿度传感器

int ibegin = (int) temp[1];
type = (byte) 'E';
smacaddr = "";
String valuetemp = "";
String valuehum="";
for (int ic = (6 + ibegin - 8); ic < (6 + ibegin - 8) + 8; ic++)
{
smacaddr += String.format("%02x", temp[ic])+ ":";
}
smacaddr = smacaddr.substring(0,smacaddr.length() - 1);
valuetemp = String.format("%d", temp[9]) + String.format(".%d", temp[10]);
valuehum = String.format("%d", temp[7]) + String.format(".%d", temp[8]);
String str = valuetemp + "-"+valuehum;
System.out.println("aaaaaaaaaa");

updateData(R.drawable.temp,"温度",smacaddr,valuetemp);
updateData(R.drawable.hum,"湿度",smacaddr,valuehum);

sim_adapter.notifyDataSetChanged();


break;
}
}
}
};

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

public SensorFragment newInstance(int sectionNumber) {
SensorFragment fragment = new SensorFragment();
Bundle args = new Bundle();
args.putInt("sensorFragment", sectionNumber);
fragment.setArguments(args);

return fragment;
}

public SensorFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

return inflater.inflate(R.layout.fragment_sensor, container,false);

}

@Override
public void onStart() {
super.onStart();
init();

}

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity) activity).onSectionAttached(getArguments().getInt("sensorFragment"));
}

private void updateData(int icon,String iconName,String iconMac,String iconValue){
boolean isfound=false;
for(int i=0;i<data_list.size();i++){
Map<String, Object> map = new HashMap<String, Object>();
map=data_list.get(i);
if(map.get("mac").toString().equals("MAC地址:"+iconMac)){
if(map.get("name").toString().equals("名称:"+iconName)){
map.put("value","采集信息:"+iconValue);
isfound=true;
break;
}
}else{}
}
System.out.println("isfound="+isfound);
if(isfound==false){
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", icon);
map.put("name", "名称:"+iconName);
map.put("mac", "MAC地址:"+iconMac);
map.put("value", "采集信息:"+iconValue);
data_list.add(0,map);
}else{}
sim_adapter.notifyDataSetChanged();
}

private void init(){
myapp=(MyApplication)getActivity().getApplication();
myapp.setHandler(handler);
gv_sensor=(GridView)getActivity().findViewById(R.id.gv_sensor);
//新建List
data_list = new ArrayList<Map<String, Object>>();
//获取数据
//新建适配器
String [] from ={"image","name","mac","value"};
int [] to = {R.id.gv_image,R.id.gv_name,R.id.gv_mac,R.id.gv_value};
sim_adapter = new SimpleAdapter(getActivity(), data_list, R.layout.gridview_items, from, to);
//配置适配器
gv_sensor.setAdapter(sim_adapter);

ebool=false;
}



}
...全文
728 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
有没有人啊1
  • 打赏
  • 举报
回复
我是楼主!!!页面没切换前是可以刷新正常使用的,但是一旦切换了Fragment后,就不能再刷新数据了,为什么?
  • 打赏
  • 举报
回复
自顶,,,来人

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧