Xml布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
/>
<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="423dp">
<RadioButton
android:id="@+id/radiobutton1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_button1"
android:gravity="center"
android:text="首页" />
<RadioButton
android:id="@+id/radiobutton2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_button1"
android:gravity="center"
android:text="首页" />
<RadioButton
android:id="@+id/radiobutton3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_button1"
android:gravity="center"
android:text="首页" />
</RadioGroup>
</android.support.constraint.ConstraintLayout>
MathActivity.this页面
package com.example.listview_1;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioGroup;
import com.example.listview_1.adapter.MyFragmentPager;
import com.example.listview_1.fragment.Frag_01;
import com.example.listview_1.fragment.Frag_02;
import com.example.listview_1.fragment.Frag_03;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ViewPager viewpager;
private List<Fragment>list;
private MyFragmentPager fgadapter;
private RadioGroup radiogroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewpager=findViewById(R.id.viewpager);
radiogroup=findViewById(R.id.radiogroup);
list = new ArrayList<Fragment>();
Frag_01 frag_01 = new Frag_01();
Frag_02 frag_02 = new Frag_02();
Frag_03 frag_03 = new Frag_03();
list.add(frag_01);
list.add(frag_02);
list.add(frag_03);
fgadapter = new MyFragmentPager(getSupportFragmentManager(),list,MainActivity.this);
viewpager.setAdapter(fgadapter);
viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
radiogroup.check(radiogroup.getChildAt(i).getId());
}
@Override
public void onPageSelected(int i) {
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.radiobutton1:
viewpager.setCurrentItem(0);
break;
case R.id.radiobutton2:
viewpager.setCurrentItem(1);
break;
case R.id.radiobutton3:
viewpager.setCurrentItem(2);
break;
}
}
});
}
}
Frag_01页面
package com.example.listview_1.fragment;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.example.listview_1.MainActivity;
import com.example.listview_1.NetWorkUtils;
import com.example.listview_1.R;
import com.example.listview_1.adapter.MyBase;
import com.example.listview_1.bean.ListBean;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
public class Frag_01 extends Fragment {
private String url="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private ListView listview;
private List<ListBean.DataBean>list;
private MyBase adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_01,container,false);
listview=view.findViewById(R.id.listview);
list = new ArrayList<ListBean.DataBean>();
adapter = new MyBase(list,getActivity());
listview.setAdapter(adapter);
new MAsyncTask().execute(url);
return view;
}
class MAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
String json = NetWorkUtils.getJson(strings[0]);
return json;
}
@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)
@Override
protected void onPostExecute(String s) {
Gson gson = new Gson();
ListBean bean = gson.fromJson(s,ListBean.class);
List<ListBean.DataBean> datalist = bean.getData();
list.addAll(datalist);
adapter.notifyDataSetChanged();;
super.onPostExecute(s);
}
}
}
MyApp页面 imageLoader
package com.example.listview_1;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(imageLoaderConfiguration);
}
}
工具类
package com.example.listview_1;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class NetWorkUtils {
/**
* 请求网络图片
*
* @param mUrl 接口地址
* @return bitmap
*/
/* public static Bitmap getBitmpa(String mUrl) {
try {
URL url = new URL(mUrl);//封装url接口
//打开了连接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = urlConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} else {
Log.e("wzq", "responseCode---bitmap:" + responseCode);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}*/
public static String getJson(String urlString) {
try {
URL url = new URL(urlString);//封装url接口
//打开了连接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String temp="";
StringBuilder stringBuilder = new StringBuilder();
while ((temp =bufferedReader.readLine()) != null){
stringBuilder.append(temp);
}
return stringBuilder.toString();
} else {
Log.e("wzq", "responseCode---json:" + responseCode);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
}
ListView适配器
package com.example.listview_1.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.listview_1.MainActivity;
import com.example.listview_1.R;
import com.example.listview_1.bean.ListBean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MyBase extends BaseAdapter {
private List<ListBean.DataBean>list;
private Context context;
public MyBase(List<ListBean.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null){
convertView = View.inflate(context,R.layout.item,null);
holder = new ViewHolder();
holder.textview=convertView.findViewById(R.id.textview3);
//获取图片资源id
holder.imageview=convertView.findViewById(R.id.imageView);
convertView.setTag(holder);
}else{
holder= (ViewHolder) convertView.getTag();
}
holder.textview.setText(list.get(position).getNews_title());
//展示图片
ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),holder.imageview);
return convertView;
}
class ViewHolder{
TextView textview;
ImageView imageview;
}
}