import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bwie.xlistview.XListView;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class NewsFragment extends Fragment {
private String url;
private static final String FLAG ="argu";
private List<News.ResultBean.DataBean> list;
private NewsAdapter adapter;
private XListView xlistview;
private int page = 1;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
url = bundle.getString("urls");
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_news,container,false);
xlistview = v.findViewById(R.id.xlv_news);
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
list = new ArrayList<>();
adapter = new NewsAdapter(getActivity(),list);
xlistview.setAdapter(adapter);
getData(page);
}
private void getData(int page) {
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... strings) {
return HttpUtils.getStringFromHttp(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
News news = gson.fromJson(s,News.class);
list.clear();
list.addAll(news.getResult().getData());
adapter.notifyDataSetChanged();
}
}.execute(url+1);
}
public static NewsFragment newInstance(String str){
NewsFragment newsFragment = new NewsFragment();
Bundle bundle = new Bundle();
bundle.putString(FLAG,str);
newsFragment.setArguments(bundle);
return newsFragment;
}
}
Bundle传值的使用
最新推荐文章于 2022-04-01 10:55:44 发布
本文深入剖析了NewsFragment类的实现细节,展示了如何通过继承Fragment并利用XListView和Gson进行新闻数据的异步加载与适配。同时,文章还介绍了如何使用AsyncTask执行后台HTTP请求,解析JSON数据,并更新UI。

1724

被折叠的 条评论
为什么被折叠?



