//=============
1.判断网络
创建一个类
public class NetWorkUtils {
public static boolean isNetWork(Context context){
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//得到网络信息
NetworkInfo info = manager.getActiveNetworkInfo();
if (info!=null){
return info.isAvailable();
}
return false;
}
}
2.回到主页面
public class MainActivity extends FragmentActivity {
private ViewPager pager;
private RadioGroup radioGroup;
private RadioButton radio1;
private RadioButton radio2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
boolean b = NetWorkUtils.isNetWork(this);
if(b){
Toast.makeText(this, "有网", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "现在没网", Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示");
builder.setMessage("设置网络连接");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("取消",null);
builder.create().show();
}
pager = findViewById(R.id.pager);
radioGroup = findViewById(R.id.radioGroup);
radio1 = findViewById(R.id.radio1);
radio2 = findViewById(R.id.radio2);
final ArrayList<Fragment> list = new ArrayList<Fragment>();
Frag01 frag01 = new Frag01();
Frag02 frag02 = new Frag02();
list.add(frag01);
list.add(frag02);
//默认选中第一个页面
radioGroup.check(list.get(0).getId());
//设置适配器
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
radioGroup.check(radioGroup.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return list.size();
}
@Override
public Fragment getItem(int i) {
return list.get(i);
}
});
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.radio1:
pager.setCurrentItem(0);
break;
case R.id.radio2:
pager.setCurrentItem(1);
break;
}
}
});
}
}
3.Fragment第一个页面
/*
1)首页 使用HttpClient进行网络请求,
加载网络数据,
使用Gson解析数据,
通过Handler更新UI ;
*/
public class Frag01 extends Fragment {
private String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private ListView listView;
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String json = (String) msg.obj;
Gson gson = new Gson();
JSON jsonBean = gson.fromJson(json, JSON.class);
ArrayList<Datas> data = jsonBean.getData();
listView.setAdapter(new ListAdapter(getActivity(),data));
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag01,container,false);
listView = view.findViewById(R.id.listView);
//========================
ViewGroup parent = (ViewGroup) view.getParent();
if(parent!=null){
//移除多余视图
parent.removeView(view);
}
//++++++++++++++=
getData();
return view;
}
private void getData() {
new Thread(new Runnable() {
@Override
public void run() {
//创建URL
try {
URL url = new URL(path);
//打开连接
HttpURLConnection coon = (HttpURLConnection) url.openConnection();
//请求方式
coon.setRequestMethod("GET");
//pand状态码
if(coon.getResponseCode()==200){
InputStream inputStream = coon.getInputStream();
//创建字节输出流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len =0;
while ((len=inputStream.read(buffer))!=-1){
bos.write(buffer,0,len);
}
//关流
inputStream.close();
bos.close();
String json = bos.toString();
Message message = Message.obtain();
message.obj=json;
message.what=0;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
4.第二个页面
public class Frag02 extends Fragment {
private String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private GridView gridView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag02,container,false);
gridView = view.findViewById(R.id.gridView);
//=========
ViewGroup parent = (ViewGroup) view.getParent();
if (parent!=null) {
//移除多余视图
parent.removeView(view);
}
//======================
MyAsyncTask myAsyncTask = new MyAsyncTask();
myAsyncTask.execute(path);
return view;
}
private class MyAsyncTask extends AsyncTask<String,Integer,String> {
@Override
protected String doInBackground(String... parmas) {
String uri = parmas[0];
try {
URL url = new URL(uri);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
if(conn.getResponseCode()==200){
InputStream inputStream = conn.getInputStream();
ByteArrayOutputStream ao = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len =0;
while ((len=inputStream.read(buffer))!=-1){
ao.write(buffer,0,len);
}
inputStream.close();
ao.close();
String json = ao.toString();
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//更新UI
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("xxx",s);
Gson gson = new Gson();
JSON fromJson = gson.fromJson(s, JSON.class);
ArrayList<Datas> arrayList = fromJson.getData();
gridView.setAdapter(new MyAdapter(arrayList,getActivity()));
}
}
}
5.分别给他们两个设置适配器
public class MyAdapter extends BaseAdapter {
private ArrayList<Datas> list;
private Context context;
public MyAdapter(ArrayList<Datas> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.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 viewHolder;
if(convertView==null){
convertView = convertView.inflate(context, R.layout.gridview_layout,null);
viewHolder = new ViewHolder();
viewHolder.a = convertView.findViewById(R.id.grid);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.a.setText(list.get(position).getNews_title());
return convertView;
}
class ViewHolder{
TextView a;
}
}