activity_main
<?xml version="1.0" encoding="utf-8"?>
<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/Drawer_Layout"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="嘻嘻."/>
<android.support.v4.view.ViewPager
android:id="@+id/paper"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
<RadioGroup
android:id="@+id/radio"
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/niu1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="影片"
android:button="@null"
android:gravity="center"/>
<RadioButton
android:id="@+id/niu2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="影院"
android:button="@null"
android:gravity="center"/>
<RadioButton
android:id="@+id/niu3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="会员"
android:button="@null"
android:gravity="center"/>
<RadioButton
android:id="@+id/niu4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="设置"
android:button="@null"
android:gravity="center"/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
frag_a
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.v4.view.ViewPager
android:id="@+id/view_paper"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
</LinearLayout>
frag_aitem
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.pulltolibrary.PullToRefreshListView
android:id="@+id/pull"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
frag_b
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0ff">
</LinearLayout>
frag_bitem
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
frag_c
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f00">
</LinearLayout>
frag_citem
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
app:srcCompat="@mipmap/ic_launcher" />
</LinearLayout>
frag_d
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0f0">
</LinearLayout>
pull_list
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageName"
android:layout_width="wrap_content"
android:layout_height="100dp"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/texeName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:text="TextView" />
</LinearLayout>
MainActivity
扫描二维码关注公众号,回复:
5017752 查看本文章
package com.gs.gg.moniyuekao;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.widget.RadioGroup;
import com.gs.gg.moniyuekao.fragment.AFragment;
import com.gs.gg.moniyuekao.fragment.BFragment;
import com.gs.gg.moniyuekao.fragment.CFragment;
import com.gs.gg.moniyuekao.fragment.DFragment;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ViewPager paper;
private RadioGroup radio;
private DrawerLayout Drawer_Layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
paper = (ViewPager) findViewById(R.id.paper);
radio = (RadioGroup) findViewById(R.id.radio);
Drawer_Layout = (DrawerLayout) findViewById(R.id.Drawer_Layout);
AFragment aFragment=new AFragment();
BFragment bFragment=new BFragment();
CFragment cFragment=new CFragment();
DFragment dFragment=new DFragment();
final ArrayList<Fragment> list=new ArrayList<>();
list.add(aFragment);
list.add(bFragment);
list.add(cFragment);
list.add(dFragment);
paper.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
paper.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
radio.check(radio.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.niu1:
paper.setCurrentItem(0);
break;
case R.id.niu2:
paper.setCurrentItem(1);
break;
case R.id.niu3:
paper.setCurrentItem(2);
break;
case R.id.niu4:
paper.setCurrentItem(3);
break;
}
}
});
}
}
HttpUtils
package com.gs.gg.moniyuekao.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpUtils {
private static String inputStr;
public static String get(String urlStr){
try {
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
InputStream stream = connection.getInputStream();
inputStr = getInputStr(stream);
} catch (Exception e) {
e.printStackTrace();
}
return inputStr;
}
private static String getInputStr(InputStream stream) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(stream));
StringBuffer sb = new StringBuffer();
String str=null;
while ((str=br.readLine())!=null){
sb.append(str);
}
return sb.toString();
}
}
AFragment
package com.gs.gg.moniyuekao.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
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 com.gs.gg.moniyuekao.R;
import com.gs.gg.moniyuekao.adapter.MyAdapter;
import java.util.ArrayList;
public class AFragment extends Fragment {
private TabLayout tab;
private ViewPager view_paper;
private ArrayList<Fragment> tlist=new ArrayList<>();
private ArrayList<String> vtiem=new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_a, container, false);
if (tlist.isEmpty()){
initData();
}
initView(view);
return view;
}
private void initData() {
tlist.add(new Frag_A());
tlist.add(new Frag_B());
tlist.add(new Frag_C());
vtiem.add("热门影片");
vtiem.add("正在上映");
vtiem.add("即将上映");
}
private void initView(View view) {
tab = view.findViewById(R.id.tab);
view_paper = view.findViewById(R.id.view_paper);
view_paper.setAdapter(new MyAdapter(getActivity().getSupportFragmentManager(),tlist,vtiem));
tab.setupWithViewPager(view_paper);
}
}
BFragment
package com.gs.gg.moniyuekao.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.gs.gg.moniyuekao.R;
public class BFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_b, container, false);
return view;
}
}
CFragment
package com.gs.gg.moniyuekao.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.gs.gg.moniyuekao.R;
public class CFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_c, container, false);
return view;
}
}
DFragment
package com.gs.gg.moniyuekao.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.gs.gg.moniyuekao.R;
public class DFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_a, container, false);
return view;
}
}
Frag_A
package com.gs.gg.moniyuekao.fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
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.pulltolibrary.PullToRefreshBase;
import com.example.pulltolibrary.PullToRefreshListView;
import com.google.gson.Gson;
import com.gs.gg.moniyuekao.R;
import com.gs.gg.moniyuekao.adapter.PullAdapter;
import com.gs.gg.moniyuekao.bean.User;
import com.gs.gg.moniyuekao.util.HttpUtils;
import java.util.ArrayList;
public class Frag_A extends Fragment {
private PullToRefreshListView pull;
private String murl="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?userId=18&sessionId=15320748258726&page=1&count=10";
private ArrayList<User.ResultBean> alist=new ArrayList<>();
private int i=1;
private PullAdapter pullAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_aitem, container, false);
initView(view);
pull.setMode(PullToRefreshBase.Mode.BOTH);
pullAdapter = new PullAdapter(getActivity(),alist);
pull.setAdapter(pullAdapter);
new MyTask().execute(murl+i);
pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
i=1;
alist.clear();
new MyTask().execute(murl+i);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
i++;
new MyTask().execute(murl+i);
}
});
return view;
}
class MyTask extends AsyncTask<String,Void,ArrayList<User.ResultBean>>{
@Override
protected ArrayList<User.ResultBean> doInBackground(String... strings) {
String json = HttpUtils.get(strings[0]);
Gson gson=new Gson();
User user = gson.fromJson(json, User.class);
return (ArrayList<User.ResultBean>) user.getResult();
}
@Override
protected void onPostExecute(ArrayList<User.ResultBean> resultBeans) {
super.onPostExecute(resultBeans);
alist.addAll(resultBeans);
pullAdapter.notifyDataSetChanged();
pull.onRefreshComplete();
}
}
private void initView(View view) {
pull = (PullToRefreshListView) view.findViewById(R.id.pull);
}
}
Frag_B
package com.gs.gg.moniyuekao.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.gs.gg.moniyuekao.R;
public class Frag_B extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_bitem, container, false);
return view;
}
}
Frag_C
package com.gs.gg.moniyuekao.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.gs.gg.moniyuekao.R;
public class Frag_C extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_citem, container, false);
return view;
}
}
MyAdapter
package com.gs.gg.moniyuekao.adapter;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm, ArrayList<Fragment> tlist, ArrayList<String> vtiem) {
super(fm);
this.tlist = tlist;
this.vtiem = vtiem;
}
private ArrayList<Fragment> tlist;
private ArrayList<String > vtiem;
@Override
public Fragment getItem(int i) {
return tlist.get(i);
}
@Override
public int getCount() {
return tlist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return vtiem.get(position);
}
}
PullAdapter
package com.gs.gg.moniyuekao.adapter;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.gs.gg.moniyuekao.R;
import com.gs.gg.moniyuekao.bean.User;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
public class PullAdapter extends BaseAdapter {
private Context context;
private ArrayList<User.ResultBean> alist;
public PullAdapter(Context context, ArrayList<User.ResultBean> alist) {
this.context = context;
this.alist = alist;
}
@Override
public int getCount() {
return alist.size();
}
@Override
public Object getItem(int position) {
return alist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
if (convertView==null){
convertView= View.inflate(context,R.layout.pull_list,null);
holder =new ViewHolder();
holder.textName=convertView.findViewById(R.id.texeName);
holder.imageName=convertView.findViewById(R.id.imageName);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
User.ResultBean bean = alist.get(position);
holder.textName.setText (bean.getSummary());
ImageLoader.getInstance().displayImage(alist.get(position).getImageUrl(),holder.imageName);
return convertView;
}
class ViewHolder{
TextView textName;
ImageView imageName;
}
}