第一步:XML布局
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
第二步:AsyncTask方法
public class FragmentA extends Fragment {
private ListView listview;
private List<Bean.DataEntity>data;
private MyAdapter myAdapter;
private String stringurls="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment01,container,false);
listview=(ListView)view.findViewById(R.id.listview);
data=new ArrayList<Bean.DataEntity>();
myAdapter = new MyAdapter(data, getActivity());
listview.setAdapter(myAdapter);
new MyStart().execute(stringurls);
return view;
}
class MyStart extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... strings) {
String s = NetUril.getString(strings[0]);
return s;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.DataEntity> data1 = bean.getData();
data.addAll(data1);
myAdapter.notifyDataSetChanged();
}
}
}
第三步:Bean
public class Bean {
private List<DataEntity> data;
private int status;
private String info;
public void setData(List<DataEntity> data) {
this.data = data;
}
public void setStatus(int status) {
this.status = status;
}
public void setInfo(String info) {
this.info = info;
}
public List<DataEntity> getData() {
return data;
}
public int getStatus() {
return status;
}
public String getInfo() {
return info;
}
public class DataEntity {
private String news_title;
private String pic_url;
private String news_summary;
private String news_id;
public void setNews_title(String news_title) {
this.news_title = news_title;
}
public void setPic_url(String pic_url) {
this.pic_url = pic_url;
}
public void setNews_summary(String news_summary) {
this.news_summary = news_summary;
}
public void setNews_id(String news_id) {
this.news_id = news_id;
}
public String getNews_title() {
return news_title;
}
public String getPic_url() {
return pic_url;
}
public String getNews_summary() {
return news_summary;
}
public String getNews_id() {
return news_id;
}
}
}
第四步:NetUril
public class NetUril {
public static String getString(String stringurl){
try {
URL url = new URL(stringurl);
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String st1="";
String st2="";
while ((st1=bufferedReader.readLine())!=null){
st2+=st1;
}
return st2;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
}
第五步:适配器
public class MyAdapter extends BaseAdapter {
private List<Bean.DataEntity> data;
private Context context;
public MyAdapter(List<Bean.DataEntity> data, Context context) {
this.data = data;
this.context = context;
}
public List<Bean.DataEntity> getData() {
return data;
}
public void setData(List<Bean.DataEntity> data) {
this.data = data;
}
public Context getContext() {
return context;
}
public void setContext(Context context) {
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder vh = new ViewHolder();
if (convertView==null){
convertView=View.inflate(context,R.layout.item,null);
vh.img1=(ImageView)convertView.findViewById(R.id.img1);
vh.text1=(TextView)convertView.findViewById(R.id.text1);
convertView.setTag(vh);
}else{
vh=(ViewHolder)convertView.getTag();
}
vh.text1.setText(data.get(position).getNews_title());
Glide.with(context).load(data.get(position).getPic_url()).into(vh.img1);
return convertView;
}
class ViewHolder{
ImageView img1;
TextView text1;
}
}
Handler方法
public class FragmentB extends Fragment {
private GridView grid;
private List<Bean.DataEntity>datas;
private MyAdapter myAdapter;
private String stringurl="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private Handler handler= new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==1){
String json= (String) msg.obj;
Gson gson = new Gson();
Bean bean = gson.fromJson(json, Bean.class);
List<Bean.DataEntity> data1 = bean.getData();
datas.addAll(data1);
myAdapter.notifyDataSetChanged();
}
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate( R.layout.fragment02,container,false);
grid=(GridView)view.findViewById(R.id.grid);
datas=new ArrayList<Bean.DataEntity>();
myAdapter = new MyAdapter(datas, getActivity());
grid.setAdapter(myAdapter);
onTack();
return view;
}
private void onTack() {
new Thread(){
@Override
public void run() {
super.run();
String s = NetUril.getString(stringurl);
Message message = handler.obtainMessage();
message.what=1;
message.obj=s;
handler.sendMessage(message);
}
}.start();
}
}