主页面布局
<?xml version="1.0" encoding="utf-8"?>
<q.rorbin.verticaltablayout.VerticalTabLayout
android:layout_width=“70dp”
android:layout_height=“match_parent”
android:id="@+id/tab"
></q.rorbin.verticaltablayout.VerticalTabLayout>
<android.support.v4.view.ViewPager
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignRight="@+id/tab"
android:id="@+id/viewpager"
></android.support.v4.view.ViewPager>
tab+viewpager <?xml version="1.0" encoding="utf-8"?>
import android.content.Context;
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.app.JobIntentService;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.lianxi1.R;
import com.example.library.me.maxwin.view.XListView;
import java.util.ArrayList;
import java.util.List;
import ad.MyAdapter;
import bean.MyData;
import page.Pageadapter;
public class Afragment extends Fragment {
private List jtittle=new ArrayList<>();
private List jlist=new ArrayList<>();
private List<MyData.DataBean> mlist=new ArrayList<>();
private XListView xxListView;
private ViewPager vpjiazai;
private TabLayout tabjiazai;
private Pageadapter pageadapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View mview=inflater.inflate(R.layout.afragmnet,null);
initData();
initview(mview);
return mview;
}
private void initData() {
jtittle.add("Xlistview");
jtittle.add("pull");
jlist.add(new XlistFragment());
jlist.add(new Pullfragment());
}
private void initview(View mview) {
tabjiazai = (TabLayout) mview.findViewById(R.id.tab_jiazai);
vpjiazai = (ViewPager) mview.findViewById(R.id.vp_jiazai);
pageadapter = new Pageadapter(getChildFragmentManager(),jtittle,jlist);
vpjiazai.setAdapter(pageadapter);
tabjiazai.setupWithViewPager(vpjiazai);
}
}
轮播
package fragment;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
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 com.example.lianxi1.R;
import page.MyPageadaapter;
public class Luobofragment extends Fragment {
private int index=0;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
vp_image.setCurrentItem(index);
index++;
handler.sendEmptyMessageDelayed(0,1000);
}
};
private int[] image=new int[]{R.drawable.psb,R.drawable.aa};
private MyPageadaapter myPageadaapter;
private ViewPager vp_image;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.lb_item,null);
initView(view);
return view;
}
private void initView(View view) {
vp_image = view.findViewById(R.id.vp_image);
myPageadaapter = new MyPageadaapter(getActivity(),image);
vp_image.setAdapter(myPageadaapter);
handler.sendEmptyMessage(0);
}
}
网络请求
package http;
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 HttpUrls {
public static String get(String urlstr) throws Exception {
URL url=new URL(urlstr);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setRequestMethod(“GET”);
InputStream stream = connection.getInputStream();
String s=getinputstr(stream);
return s;
}
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();
}
}
pageadapter
package page;
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.List;
public class Pageadapter extends FragmentPagerAdapter {
private List mtittle;
private List mlist;
public Pageadapter(FragmentManager fm,List<String> mtittle, List<Fragment> mlist) {
super(fm);
this.mtittle = mtittle;
this.mlist = mlist;
}
@Override
public Fragment getItem(int i) {
return mlist.get(i);
}
@Override
public int getCount() {
return mlist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mtittle.get(position);
}
}
轮播 page
package page;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MyPageadaapter extends PagerAdapter {
private Context context;
private int[] image;
public MyPageadaapter(Context context, int[] image) {
this.context = context;
this.image = image;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view==o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView img=new ImageView(context);
img.setImageResource(image[position%image.length]);
container.addView(img);
return img;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
myadapter
package ad;
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.lianxi1.R;
import java.util.ArrayList;
import java.util.List;
import bean.MyData;
public class MyAdapter extends BaseAdapter {
private final int ITEM_ONE = 0;
private final int ITEM_TWO = 1;
private List<MyData.DataBean> mlist;
private Context context;
public MyAdapter(List<MyData.DataBean> mList, Context context) {
this.mlist = mList;
this.context = context;
}
@Override
public int getCount() {
return mlist.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
HolderOne one=null;
HolderTwo two=null;
int type=getItemViewType(position);
MyData.DataBean databean = mlist.get(position);
switch (type){
case ITEM_ONE:
if(convertView==null){
one=new HolderOne();
convertView= View.inflate(context,R.layout.item_one,null);
one.textone=convertView.findViewById(R.id.textone);
convertView.setTag(one);
}
else {
one= (HolderOne) convertView.getTag();
}
one.textone.setText(databean.getNews_title()+"");
break;
case ITEM_TWO:
if(convertView==null){
two=new HolderTwo();
convertView= View.inflate(context,R.layout.item_two,null);
two.texttwo=convertView.findViewById(R.id.texttwo);
convertView.setTag(two);
}
else {
two= (HolderTwo) convertView.getTag();
}
two.texttwo.setText(databean.getNews_title()+"");
break;
}
return convertView;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if(position%2==0){
return ITEM_ONE;
}
else {
return ITEM_TWO;
}
}
class HolderOne {
private TextView textone;
private ImageView imageone;
}
class HolderTwo {
private TextView texttwo;
private ImageView imagetwo;
}
}
Xlistview
package fragment;
import android.content.Context;
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 com.example.lianxi1.R;
import com.example.library.me.maxwin.view.XListView;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import ad.MyAdapter;
import bean.MyData;
import http.HttpUrls;
public class XlistFragment extends Fragment implements XListView.IXListViewListener {
private List<MyData.DataBean> mlist=new ArrayList<>();
private String murl=“http://api.expoon.com/AppNews/getNewsList/type/1/p/1”;
private XListView xxlistview;
private Context context;
private MyAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View mview = inflater.inflate(R.layout.xlist_item,container,false);
initView(mview);
context=getActivity().getApplication();
adapter = new MyAdapter(mlist,context);
xxlistview.setAdapter(adapter);
new Async().execute(murl);
return mview;
}
private void initView(View mview) {
xxlistview = (XListView)mview.findViewById(R.id.xxlistview);
xxlistview.setPullLoadEnable(true);
xxlistview.setXListViewListener(this);
}
@Override
public void onRefresh() {
mlist.clear();
new Async().execute(murl);
stop();
}
@Override
public void onLoadMore() {
new Async().execute(murl);
stop();
}
private void stop() {
xxlistview.stopLoadMore();
xxlistview.stopRefresh();
xxlistview.setRefreshTime("刚刚");
}
class Async extends AsyncTask<String,Void,List<MyData.DataBean>> {
@Override
protected List<MyData.DataBean> doInBackground(String... strings) {
try {
String str = HttpUrls.get(strings[0]);
Gson g = new Gson();
MyData mydata = g.fromJson(str, MyData.class);
return mydata.getData();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(List<MyData.DataBean> dataBeans) {
mlist.addAll(dataBeans);
adapter.notifyDataSetChanged();
}
}
}