Fragment+ViewPager+侧拉菜单

//+++++++++++TwoActivity++++++++++

import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import java.util.ArrayList;

public class TwoActivity extends AppCompatActivity {

private ViewPager viewPager;
private DrawerLayout drawerLayout;
private ActionBar actionBar;
private ActionBarDrawerToggle mToggle;
private RadioGroup radioGroup;
private RadioButton radioButton;
private RadioButton dianying;
private RadioButton yingyuan;
private RadioButton yanchu;
private RadioButton wode;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_two);
    viewPager = findViewById(R.id.viewPager);
    drawerLayout = findViewById(R.id.drawerLayout);

    actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    mToggle = new ActionBarDrawerToggle(this,drawerLayout,R.string.guan,R.string.kai);
    mToggle.syncState();
    drawerLayout.addDrawerListener(mToggle);

    doFragment();


}

private void doFragment() {
    ArrayList<Fragment> list=new ArrayList<>();
    list.add(new OneFragment());
    list.add(new TwoFragment());
    list.add(new ThreeFragment());
    list.add(new FourFragment());
    list.add(new FiveFragment());

    MyPagerAdapter myPagerAdapter=new MyPagerAdapter(getSupportFragmentManager(),list);
    viewPager.setAdapter(myPagerAdapter);
    initView();

}

private void initView() {
    radioGroup = findViewById(R.id.radio);
    radioButton = findViewById(R.id.shouye);
    dianying = findViewById(R.id.dianying);
    yingyuan = findViewById(R.id.yingyuan);
    yanchu = findViewById(R.id.yanchu);
    wode = findViewById(R.id.wode);

    ArrayList<Fragment> mData=new ArrayList<>();
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId){
                case R.id.shouye:
                    viewPager.setCurrentItem(0);
                    break;
                case R.id.dianying:
                    viewPager.setCurrentItem(1);
                    break;
                case R.id.yingyuan:
                    viewPager.setCurrentItem(2);
                    break;
                case R.id.yanchu:
                    viewPager.setCurrentItem(3);
                    break;
                case R.id.wode:
                    viewPager.setCurrentItem(4);
                    break;

            }
        }
    });


}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mToggle.onOptionsItemSelected(item)){
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}
//+++++++++++++适配器(MyPagerAdapter )++++++++++++

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

public class MyPagerAdapter extends FragmentPagerAdapter {

private ArrayList<Fragment> list;

public MyPagerAdapter(FragmentManager fm, ArrayList<Fragment> list) {
    super(fm);
    this.list = list;
}

public void setFragment(ArrayList<Fragment> fragmentArrayList){
    list=fragmentArrayList;
}

@Override
public Fragment getItem(int position) {
    return list.get(position);
}

@Override
public int getCount() {
    return list.size();
}

}
//+++++++++++++侧拉菜单+++++++++++
++++++++++++string.xml++++++++++++
<resources+>
MN1</string+>
开启</string+>
关闭</string+>
</resources+>
//++++++++++OneFragment+++++++++
import android.annotation.SuppressLint;
import android.os.AsyncTask;
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.widget.Toast;
import com.bwie.asus.mn1.Bean.JieKou;
import com.bwie.asus.mn1.Bean.LunBo;
import com.bwie.asus.mn1.Utils.MyUtils;
import com.bwie.asus.mn1.adapter.ImageAdapter;
import com.bwie.asus.mn1.adapter.MyBaseAdapter;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import xlistview.bawei.com.xlistviewlibrary.XListView;

public class OneFragment extends Fragment {
private int x=1;

private String lunbo="http://www.xieast.com/api/banner.php";
private String jiekou="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page="+x+"&count=10";
private List<JieKou.ResultBean> result=new ArrayList<>();
private ViewPager pager;
private XListView xListView;
private MyUtils myUtils;
private ImageAdapter adapter;
private MyBaseAdapter myBaseAdapter;
private MyAsyncTack myAsyncTack;
private View view;

@Nullable
@Override

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag1, container, false);
pager = view.findViewById(R.id.pager);
xListView = view.findViewById(R.id.xlistView);
xListView.setPullLoadEnable(true);
xListView.setPullRefreshEnable(true);
myUtils = new MyUtils();
new Thread(){
@Override
public void run() {
super.run();
String data = myUtils.Data(lunbo);
Gson gson=new Gson();
LunBo lunBo = gson.fromJson(data, LunBo.class);
List<LunBo.DataBean> data1 = lunBo.getData();
adapter = new ImageAdapter(getActivity(),data1);
Message message=new Message();
message.what=0;
message.obj=adapter;

            handler.sendMessage(message);
        }
    }.start();
    myAsyncTack = new MyAsyncTack();
   myAsyncTack.execute(jiekou);
    xListView.setXListViewListener(new XListView.IXListViewListener() {
        
        public void onRefresh() {
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    x=1;
                    jiekou="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page="+x+"&count=10";
                            String data = myUtils.Data(jiekou);
                            Gson gson=new Gson();
                            JieKou kou = gson.fromJson(data, JieKou.class);
                            List<JieKou.ResultBean> result1 = kou.getResult();

                            result.addAll(result1);
                            handler.sendEmptyMessage(1);
                            result.clear();
                }
            },2000);
        }

    
    public void onLoadMore(){
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                x++;
                jiekou="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page="+x+"&count=10";
                new Thread(){
                    @Override
                    public void run() {
                        super.run();
                        String data = myUtils.Data(jiekou);
                        Gson gson=new Gson();
                        JieKou jieKou = gson.fromJson(data, JieKou.class);
                        if (jieKou.getMessage().equals("查询成功")){
                            return;
                        }
                        List<JieKou.ResultBean> result1 = jieKou.getResult();
                        result.addAll(result1);
                        handler.sendEmptyMessage(1);

                    }
                }.start();
                handler.sendEmptyMessage(3);

            }
        },1000);
    }
});

   return view;

}
public class MyAsyncTack extends AsyncTask<String,Integer,Object>{

    @Override
    protected Object doInBackground(String... strings) {
        String tu=strings[0];
        String data = myUtils.Data(tu);
        return data;
    }

    @Override
    protected void onPostExecute(Object o) {
        super.onPostExecute(o);
        if (o!=null){
            String s= (String) o;
            Message message=new Message();
            message.what=6;
            message.obj=s;
            handler.sendMessage(message);
        }
    }
}

Handler handler=new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what) {
            case 0:
                ImageAdapter adapter = (ImageAdapter) msg.obj;
                pager.setAdapter(adapter);
                break;
            case 1:
                Toast.makeText(getActivity(),"下拉刷新"+result,Toast.LENGTH_LONG).show();
                myBaseAdapter.notifyDataSetChanged();
                   Close();
                break;
            case 3:
                Toast.makeText(getActivity(),"上拉加载"+result,Toast.LENGTH_LONG).show();
                myBaseAdapter.notifyDataSetChanged();
                Close();
                break;
            case 6:
                String s= (String) msg.obj;
                Gson gson=new Gson();
                JieKou jieKou= gson.fromJson(s,JieKou.class);
                List<JieKou.ResultBean>result = jieKou.getResult();
                myBaseAdapter=new MyBaseAdapter(getActivity(), (ArrayList<JieKou.ResultBean>) result);
                xListView.setAdapter(myBaseAdapter);
                break;
                    }
                   }
               };

private  void Close(){
    Date date=new Date();
    date.getTime();
    xListView.stopLoadMore();
    xListView.stopRefresh();
    xListView.setRefreshTime(""+date);
}

}

//布局
<android.support.v4.widget.DrawerLayout 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”
android:id="@+id/drawerLayout"
tools:context=".TwoActivity">

<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_weight=“1”
>
</android.support.v4.view.ViewPager>






<fragment
    android:layout_width="300dp"
    android:layout_height="match_parent"
    class="com.bwie.asus.mn1.BlankFragment"
    android:layout_gravity="start"/>

</android.support.v4.widget.DrawerLayout+>

//++++++BlankFragment++++++

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class BlankFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_blank,container, false);
return view;
}
}

猜你喜欢

转载自blog.csdn.net/qq_42811815/article/details/83409355
今日推荐