点击时刷新数据
用处:在项目中,在错题集Fragment收藏了错题后,点到收藏Fragment以后,收藏Fragment刷新收藏题数据;
NetDataLayer 中的方法:
// 获取收藏题的数量接口
// http://10.0.0.194:96/api.php?action=getcount
// uid 用户ID
// scode 登录校验码
// clienttype 1:android手机客户端 3:IOS手机客户端
// 返回
// favor_count 收藏题的数量
public static String http_getcount() {
String write_data = "uid=" + UserHelper.userId
+"&scode=" +UserHelper.token
+"&clienttype=1";
return get_Http_Post("http://"+ApplicationApp.ipAdd + "/api.php?action=getcount", write_data);
}
然后在Activity_Main中写一个线程,当点击了收藏Fragment后,调用这个线程:
// 获取收藏题数量子线程
// 如果第一次count为空,将数据存入,每次进入时进行判断count和favor_count,如果相等不刷新,不相等刷新
private GetCount getcount=null;
class GetCount extends Thread{
@Override
public void run() {
try {
String result = NetDataLayer.http_getcount();
JSONObject resultJO = new JSONObject(result);
if (CheckData.checkData(context, resultJO) == 0) {
JSONObject resultResultJO = new JSONObject(CheckData.parseData(resultJO));
if (count != null) {
// 取数据
SharedPreferences sp = getSharedPreferences("counts", Context.MODE_PRIVATE);
String count = sp.getString("favorCount", null);
if (!resultResultJO.optString("favor_count").equals(count)) {
runOnUiThread(new Runnable() {
@Override
public void run() {
fragment_web_collect.reLoad();
}
});
}
}
// 存数据
SharedPreferences sp = getSharedPreferences("counts", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("favorCount", resultResultJO.optString("favor_count"));
editor.commit();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
点击事件:
@Override
public void onClick(View v) {
switch (v.getId()) {
...
// 点击收藏
case R.id.radio_button2:
if (!UserHelper.userId.isEmpty() ) {
changeIconAndTextColor(2);
// 启动获取收藏题数量的线程
getcount = new GetCount();
getcount.start();
main_viewpager.setCurrentItem(2);
} else {
Intent intent1 = new Intent(this, Activity_Login.class);
startActivity(intent1);
}
break;
...
}
}