MainActivity
package yxr.com.week1;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioGroup;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends FragmentActivity {
private ViewPager viewPager;
private RadioGroup group;
List<Fragment> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=findViewById(R.id.viewpager);
group=findViewById(R.id.group);
list.add(new Fragment1());
list.add(new Fragment2());
list.add(new Fragment3());
//配置适配器
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.but1:
viewPager.setCurrentItem(0);
break;
case R.id.but2:
viewPager.setCurrentItem(1);
break;
case R.id.but3:
viewPager.setCurrentItem(2);
break;
}
}
});
}
}
Fragment1
package yxr.com.week1;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
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 android.widget.ListView;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
//网络请求,gson解析数据
public class `Fragment1` extends Fragment {
public String urlString="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private ListView listView;
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到数据
List<Mbean.DataBean> data = (List<Mbean.DataBean>) msg.obj;
ListAdapter adapter=new ListAdapter(data,getActivity());
listView.setAdapter(adapter);
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
listView=view.findViewById(R.id.listview);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
new Thread(){
@Override
public void run() {
super.run();
try {
URL url = new URL(urlString);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
int responseCode = httpURLConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = httpURLConnection.getInputStream();
String s = stramToString(inputStream);
//解析
Gson gson=new Gson();
Mbean mbean = gson.fromJson(s, Mbean.class);
//listview使用地结合数据
List<Mbean.DataBean> data = mbean.getData();
Message msg=Message.obtain();
msg.obj=data;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
/*
*将一个流转换字符中
* */
public String stramToString(InputStream stream) {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String timp;
try {
while ((timp = reader.readLine()) != null) {
stringBuilder.append(timp);
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
Fragment2
package yxr.com.week1;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
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 android.widget.GridView;
import android.widget.ListView;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
//网络请求,gson解析数据
public class Fragment2 extends Fragment {
private GridView gridView;
public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到数据
List<Mbean.DataBean> data = (List<Mbean.DataBean>) msg.obj;
ListAdapter adapter = new ListAdapter(data, getActivity());
gridView.setAdapter(adapter);
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment2, container, false);
gridView = view.findViewById(R.id.gridview);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
new Thread() {
@Override
public void run() {
super.run();
try {
URL url = new URL(urlString);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
int responseCode = httpURLConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = httpURLConnection.getInputStream();
String s = stramToString(inputStream);
//解析
Gson gson = new Gson();
Mbean mbean = gson.fromJson(s, Mbean.class);
//listview使用地结合数据
List<Mbean.DataBean> data = mbean.getData();
Message msg = Message.obtain();
msg.obj = data;
handler.sendMessage(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
/*
*将一个流转换字符中
* */
public String stramToString(InputStream stream) {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String timp;
try {
while ((timp = reader.readLine()) != null) {
stringBuilder.append(timp);
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
//适配器
package yxr.com.week1;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Handler;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
public class ListAdapter extends BaseAdapter {
private List<Mbean.DataBean> data;
private Context context;
public ListAdapter(List<Mbean.DataBean> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = new ViewHolder();
if (convertView == null) {
convertView = View.inflate(context, R.layout.list_main, null);
holder.imag = convertView.findViewById(R.id.imag);
holder.text = convertView.findViewById(R.id.text);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(data.get(position).getNews_title());
//异步加载图片
MypicTask mypicTask = new MypicTask(holder.imag);
mypicTask.execute(data.get(position).getPic_url());
return convertView;
}
class ViewHolder {
ImageView imag;
TextView text;
}
class MypicTask extends AsyncTask<String, Void, Bitmap> {
private ImageView imag;
public MypicTask(ImageView imag) {
this.imag = imag;
}
@Override
protected Bitmap doInBackground(String... strings) {
Bitmap bitmap = null;
try {
URL url = new URL(strings[0]);
HttpURLConnection httpurlConnection = (HttpURLConnection) url.openConnection();
int responseCode = httpurlConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = httpurlConnection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
}
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
//显示 赋值
imag.setImageBitmap(bitmap);
}
}
}