//Mainactivity界面
package com.example.day11tablayout06;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.example.adapter.myadapter;
import com.example.fragfment.frag1;
import com.example.fragfment.frag2;
import com.example.fragfment.frag3;
import com.example.fragfment.frag4;
import com.example.fragfment.frag5;
import java.util.ArrayList;
public class MainActivity extends BaseActivity{
private DrawerLayout draw_layout;
private ImageView img01;
private ViewPager view_page;
private RadioGroup rap;
@Override
protected int getlayoutId() {
return R.layout.activity_main;
}
@Override
protected void initview() {
draw_layout = findViewById(R.id.draw_layout);
img01 = findViewById(R.id.img01);
rap = findViewById(R.id.rap);
view_page = findViewById(R.id.view_page);
}
@Override
protected void getdata() {
//创建fragment对象
frag1 frag1 = new frag1();
frag2 frag2 = new frag2();
frag3 frag3 = new frag3();
frag4 frag4 = new frag4();
frag5 frag5 = new frag5();
ArrayList<Fragment> list = new ArrayList<>();
list.add(frag1);
list.add(frag2);
list.add(frag3);
list.add(frag4);
list.add(frag5);
myadapter myadapter = new myadapter(getSupportFragmentManager(),list);
view_page.setAdapter(myadapter);
view_page.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
rap.check(rap.getChildAt(position).getId());
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
img01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
draw_layout.openDrawer(Gravity.LEFT);
}
});
//侧滑监听
draw_layout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
Log.i("xxx","打开了侧滑页面");
}
@Override
public void onDrawerClosed(View drawerView) {
Log.i("xxx","关闭了侧滑页面");
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
rap.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.rap1:
view_page.setCurrentItem(0);
break;
case R.id.rap2:
view_page.setCurrentItem(1);
break;
case R.id.rap3:
view_page.setCurrentItem(2);
break;
case R.id.rap4:
view_page.setCurrentItem(3);
break;
case R.id.rap5:
view_page.setCurrentItem(4);
break;
default:
break;
}
}
});
}
}
//BaseActivity基类
package com.example.day11tablayout06;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
/**
* Created by lenovo on 2018/7/22.
*/
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getlayoutId());
initview();
getdata();
}
protected abstract int getlayoutId();
protected abstract void initview();
protected abstract void getdata();
}
//fragment1界面
package com.example.fragfment;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.ImageView;
import com.bwei.imageloaderlibrary.utils.ImageLoaderUtils;
import com.example.adapter.adapter;
import com.example.adapter.my1adapter;
import com.example.bean.news;
import com.example.bean.news1;
import com.example.day11tablayout06.R;
import com.example.utils.HttpUtils;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import view.XListView;
/**
* Created by lenovo on 2018/7/22.
*/
public class frag1 extends Fragment {
private String path="http://www.xieast.com/api/news/news.php?page=";
private int page =1;
private adapter adapter;
private my1adapter my1adapter;
private View view;
private ViewPager view_page01;
private List<com.example.bean.news1.DataBean> list1 =new ArrayList<>();
private XListView x_listview;
private List<ImageView> list =new ArrayList<>();
private Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
String json =(String)msg.obj;
getjsondata(json);
}else if(msg.what==1){
int i = view_page01.getCurrentItem();
i++;
view_page01.setCurrentItem(i);
handler.sendEmptyMessageDelayed(1,1000);
}
}
};
private void getjsondata(String json) {
Gson gson = new Gson();
news news = gson.fromJson(json, news.class);
List<com.example.bean.news.DataBean> data = news.getData();
for (int i = 0; i <data.size() ; i++) {
String s = data.get(i).getImg();
ImageView imageView = new ImageView(getActivity());
DisplayImageOptions options = ImageLoaderUtils.getOptions();
ImageLoader.getInstance().displayImage(s,imageView,options);
list.add(imageView);
}
adapter = new adapter(getActivity(),list);
view_page01.setAdapter(adapter);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if(view ==null){
view = inflater.inflate(R.layout.frag1, container, false);
}
ViewGroup parent = (ViewGroup)view.getParent();
if(parent!=null){
parent.removeView(view);
}
view_page01 = view.findViewById(R.id.view_page01);
x_listview = view.findViewById(R.id.x_listview);
getservices();
getfronid();
getfromdatanet();
return view;
}
private void getfronid() {
x_listview.setPullRefreshEnable(true);
x_listview.setPullLoadEnable(true);
x_listview.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
getfromdatanet();
}
@Override
public void onLoadMore() {
page+=1;
getfromdatanet();
}
});
//写适配器
my1adapter = new my1adapter(getActivity(),list1);
x_listview.setAdapter(my1adapter);
}
private void getfromdatanet() {
String url =path+page;
HttpUtils httpUtils = HttpUtils.getinstance();
httpUtils.getdata(url);
httpUtils.setdatajsonlisten(new HttpUtils.getdatajsonlisten() {
@Override
public void datajson1(String json) {
Gson gson = new Gson();
news1 news1 = gson.fromJson(json, news1.class);
List<com.example.bean.news1.DataBean> data1 = news1.getData();
if(page==1){
list1.clear();
}
list1.addAll(data1);
//适配器刷新
my1adapter.notifyDataSetChanged();
if(page==1){
x_listview.stopRefresh();
}else {
x_listview.stopLoadMore();
}
}
});
}
private void getservices() {
new Thread(){
@Override
public void run() {
super.run();
String path="http://www.xieast.com/api/banner.php";
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setRequestMethod("GET");
if(connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len =0;
while ((len=inputStream.read(bytes))!=-1){
bos.write(bytes,0,len);
}
inputStream.close();
bos.close();
String json = bos.toString();
Message message = new Message();
message.what=0;
message.obj=json;
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
@Override
public void onResume() {
super.onResume();
handler.sendEmptyMessageDelayed(1,1000);
}
@Override
public void onPause() {
super.onPause();
handler.removeCallbacksAndMessages(null);
}
}
//HttpUtils工具类
package com.example.utils;
import android.os.AsyncTask;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.PublicKey;
/**
* Created by lenovo on 2018/7/22.
*/
public class HttpUtils {
private getdatajsonlisten getdatajsonlisten;
private static HttpUtils httpUtils;
public static HttpUtils getinstance(){
if(httpUtils==null){
httpUtils =new HttpUtils();
}
return httpUtils;
}
public void getdata(String url){
Myasync myasync = new Myasync();
myasync.execute(url);
}
public class Myasync extends AsyncTask<String,Integer,String>{
@Override
protected String doInBackground(String... params) {
try {
String path =params[0];
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setRequestMethod("GET");
if(connection.getResponseCode()==200){
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len =0;
while ((len=inputStream.read(bytes))!=-1){
bos.write(bytes,0,len);
}
inputStream.close();
bos.close();
String json = bos.toString();
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
getdatajsonlisten.datajson1(s);
}
}
public interface getdatajsonlisten{
public void datajson1(String json);
}
public void setdatajsonlisten(getdatajsonlisten getdatajsonlisten){
this.getdatajsonlisten =getdatajsonlisten;
}
}
//图片轮播适配器
package com.example.adapter;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.List;
/**
* Created by lenovo on 2018/7/22.
*/
public class adapter extends PagerAdapter {
private Context context;
private List<ImageView> list;
public adapter(Context context, List<ImageView> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = list.get(position % list.size());
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
//Fragment适配器
package com.example.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
/**
* Created by lenovo on 2018/7/22.
*/
public class myadapter extends FragmentPagerAdapter {
private List<Fragment> list;
public myadapter(FragmentManager fm, List<Fragment> list) {
super(fm);
this.list = list;
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
}
//主页面布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:layout_height="match_parent"
tools:context="com.example.day11tablayout06.MainActivity">
<android.support.v4.widget.DrawerLayout
android:id="@+id/draw_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_weight="1"
android:background="#ccc"
android:orientation="horizontal"
android:layout_height="0dp">
<ImageView
android:id="@+id/img01"
android:src="@mipmap/ic_launcher"
android:layout_width="70dp"
android:layout_height="70dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="20sp"
android:layout_marginLeft="130dp"
android:text="欢迎进入页面" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/view_page"
android:layout_weight="6"
android:layout_width="match_parent"
android:layout_height="0dp"/>
<RadioGroup
android:id="@+id/rap"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1"
>
<RadioButton
android:id="@+id/rap1"
android:layout_weight="1"
android:text="首页"
android:background="@drawable/xuanze"
android:checked="true"
android:button="@null"
android:textSize="20sp"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rap2"
android:layout_weight="1"
android:text="附近"
android:background="@drawable/xuanze"
android:button="@null"
android:textSize="20sp"
android:layout_width="0dp"
android:gravity="center"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rap3"
android:layout_weight="1"
android:text="发现"
android:background="@drawable/xuanze"
android:button="@null"
android:textSize="20sp"
android:layout_width="0dp"
android:gravity="center"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rap4"
android:layout_weight="1"
android:text="订单"
android:background="@drawable/xuanze"
android:button="@null"
android:textSize="20sp"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="match_parent" />
<RadioButton
android:id="@+id/rap5"
android:layout_weight="1"
android:text="我的"
android:background="@drawable/xuanze"
android:gravity="center"
android:button="@null"
android:textSize="20sp"
android:layout_width="0dp"
android:layout_height="match_parent" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="260dp"
android:orientation="vertical"
android:layout_gravity="start"
android:background="#fccc"
android:layout_height="match_parent">
<TextView
android:text="侧拉页面"
android:textSize="25sp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
//include
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img01"
android:src="@drawable/ic_launcher"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/title1"
android:text="title1"
android:textSize="20sp"
android:layout_toRightOf="@id/img01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>