Fragemnt+ViewPager微信頁面+ListView
阿新 • • 發佈:2018-12-08
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;
}
}