我在drawerLayout
内使用NavDrawer fragment
。
每次选择标签时,我都会执行AsyncTask
来获取数据。
这个应用程序不是实时的,这就是我总是从服务器请求数据的原因。
我想编辑Layout
。
public void onTabSelected(TabLayout.Tab tab) {
if (tab.getPosition() == 0) {
GetProfileTask getProfileTask = new GetProfileTask();
getProfileTask.execute();
} else if (tab.getPosition() == 1) {
GetGames getGames = new GetGames();
getGames.execute();
}
viewPager.setCurrentItem(tab.getPosition());
}
内部AsyncTask
(这是我尝试过的)
protected void onPostExecute(String result) {
try {
JSONObject jObject = new JSONObject(result);
JSONObject profilObject = jObject.getJSONObject("Profil");
if (profilObject != null) {
email = profilObject.getString("email");
bankName = profilObject.getString("bName");
bankAccountName = profilObject.getString("bAccName");
bankAccNum = profilObject.getString("bAccNum");
LayoutInflater inflater = getActivity().getLayoutInflater();
View v = inflater.inflate(R.layout.fragment_home_tab1, null);
TextView un = (TextView) v.findViewById(R.id.profile_username);
un.setText(profilObject.getString("username"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
如果我做错了。请推荐我该怎么做。对不起,我是android的新手。
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
尝试使用loopj或sort而不是asynctask,服务器调用将更好地工作:
https://github.com/loopj/android-async-http
除了在帖子上,我只会更改片段并为每种情况制作片段
您可以将其用作参考:
http://www.survivingwithandroid.com/2013/04/android-fragment-transaction.html
我认为这些会让你的生活更轻松,享受。
答案 1 :(得分:0)
请避免这样做:你会以意想不到的行为结束!
要进行异步http调用,请使用像Volley一样的异步http库。
使用该库,您将直接在HTTP响应到达您的手机/应用程序时触发的回调中管理您的UI /应用程序状态(填充标签,下拉菜单等)!