<android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:id="@+id/Drawer_layout">
<FrameLayout
android:id="@+id/Framelayout"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
<LinearLayout
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorPrimary"
android:orientation="vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/aa"
android:layout_marginTop="30dp"/>
<TextView
android:id="@+id/xxListView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="xListView"
android:layout_marginTop="30dp"
/>
<TextView
android:id="@+id/Tab_Layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="TabLayout" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
Tablayout+viewpager
<android.support.design.widget.TabLayout
android:id="@+id/BFrag_Tab_viewone"
android:layout_width=“match_parent”
android:layout_height=“wrap_content” />
<android.support.v4.view.ViewPager
android:id="@+id/BFrag_Pager"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:layout_below="@+id/BFrag_Tab_viewone"></android.support.v4.view.ViewPager>
主页面
package com.example.week02;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
import fragment.Afragment;
import fragment.Bfragment;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private FrameLayout Framelayout;
private TextView xxListView;
private TextView Tab_Layout;
private DrawerLayout Drawer_layout;
private Afragment afragment;
private Bfragment bfragment;
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aside_item);
initData();
initView();
}
private void initData() {
afragment = new Afragment();
bfragment = new Bfragment();
}
private void initView() {
Framelayout = (FrameLayout) findViewById(R.id.Framelayout);
xxListView = (TextView) findViewById(R.id.xxListView);
xxListView.setOnClickListener(this);
Tab_Layout = (TextView) findViewById(R.id.Tab_Layout);
Tab_Layout.setOnClickListener(this);
Drawer_layout = (DrawerLayout) findViewById(R.id.Drawer_layout);
manager = getSupportFragmentManager();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.xxListView:
manager.beginTransaction().replace(R.id.Framelayout,afragment).commit();
Drawer_layout.closeDrawers();
break;
case R.id.Tab_Layout:
manager.beginTransaction().replace(R.id.Framelayout,bfragment).commit();
Drawer_layout.closeDrawers();
break;
}
}
}
Afragment
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.library.me.maxwin.view.XListView;
import com.example.week02.R;
import com.google.gson.Gson;
import java.util.ArrayList;
import adapterr.MyAdapter;
import bean.Mydata;
import utils.HttpUtils;
public class Afragment extends Fragment implements XListView.IXListViewListener {
private String mUrl = “http://www.xieast.com/api/news/news.php?page=”;
private ArrayList<Mydata.DataBean> mList = new ArrayList<>();
private Context mContext;
private XListView listView;
private MyAdapter adapter;
private View mview;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mview = inflater.inflate(R.layout.fragment_a, null);
mContext = getActivity().getApplication();
initView(mview);
adapter = new MyAdapter(mContext,mList);
listView.setAdapter(adapter);
new Async().execute(mUrl);
return mview;
}
private void initView(View mview) {
listView = (XListView) mview.findViewById(R.id.listview);
listView.setPullLoadEnable(true);
listView.setXListViewListener(this);
}
@Override
public void onRefresh() {
mList.clear();
new Async().execute(mUrl);
stop();
}
@Override
public void onLoadMore() {
new Async().execute(mUrl);
stop();
}
public void stop(){
listView.stopRefresh();
listView.stopLoadMore();
listView.setRefreshTime("刚刚");
}
class Async extends AsyncTask<String,Void,ArrayList<Mydata.DataBean>>{
@Override
protected ArrayList<Mydata.DataBean> doInBackground(String... strings) {
try {
String str = HttpUtils.get(strings[0]);
Gson g=new Gson();
Mydata data = g.fromJson(str, Mydata.class);
return (ArrayList<Mydata.DataBean>) data.getData();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ArrayList<Mydata.DataBean> dataBeans) {
mList.addAll(dataBeans);
adapter.notifyDataSetChanged();
}
}
}
Bfragment
package 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.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.example.week02.R;
import java.util.ArrayList;
import pageadapter.pageAdapter;
public class Bfragment extends Fragment {
private ArrayList mList = new ArrayList<>();
private ArrayList mTitle = new ArrayList<>();
private View mView;
private PagerAdapter adapter;
private TabLayout BFrag_Tab_viewone;
private ViewPager BFrag_Pager;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_b, null);
initData();
initView(mView);
Toast.makeText(getActivity(), "1111", Toast.LENGTH_SHORT).show();
return mView;
}
private void initData() {
mList.add(new Afragment());
mList.add(new Afragment());
mTitle.add("新闻");
mTitle.add("娱乐");
}
private void initView(View mView) {
BFrag_Tab_viewone = (TabLayout) mView.findViewById(R.id.BFrag_Tab_viewone);
BFrag_Pager = (ViewPager) mView.findViewById(R.id.BFrag_Pager);
adapter = new pageAdapter(getChildFragmentManager(), mList, mTitle);
BFrag_Pager.setAdapter(adapter);
BFrag_Tab_viewone.setupWithViewPager(BFrag_Pager);
}
}
MyAdapter
package adapterr;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.week02.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import java.util.ArrayList;
import bean.Mydata;
public class MyAdapter extends BaseAdapter {
private Context context;
private ArrayList<Mydata.DataBean> mList;
private final int ITEM_ONE = 0;
private final int ITEM_TWO = 1;
private ImageLoader mImageLoader=ImageLoader.getInstance();
private DisplayImageOptions m;
public MyAdapter(Context context, ArrayList<Mydata.DataBean> mList) {
m=new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher)
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.cacheInMemory(true)
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.ARGB_8888) //设置图片的解码类型
.displayer(new CircleBitmapDisplayer())//加载圆角图片
.build();
this.context = context;
this.mList = mList;
}
@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 int getItemViewType(int position) {
if(position%2==0){
return ITEM_ONE;
}
else {
return ITEM_TWO;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@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.mNameOne=convertView.findViewById(R.id.onetext);
one.mImageOne=convertView.findViewById(R.id.imageone);
convertView.setTag(one);
}
else{
one= (Holderone) convertView.getTag();
}
one.mNameOne.setText(dataBean.getTitle()+"");
mImageLoader.displayImage(dataBean.getThumbnail_pic_s(),one.mImageOne,m);
break;
case ITEM_TWO:
if(convertView==null){
two=new HolderTwo();
convertView = View.inflate(context, R.layout.item_two, null);
two.mNameTwo=convertView.findViewById(R.id.twotext);
two.mImageTwo=convertView.findViewById(R.id.imagetwo);
convertView.setTag(two);
}
else{
two= (HolderTwo) convertView.getTag();
}
two.mNameTwo.setText(dataBean.getTitle()+"");
mImageLoader.displayImage(dataBean.getThumbnail_pic_s(),two.mImageTwo,m);
break;
}
return convertView;
}
class Holderone{
private TextView mNameOne;
private ImageView mImageOne;
}
class HolderTwo {
private TextView mNameTwo;
private ImageView mImageTwo;
}
}
PageAdapter
package pageadapter;
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 pageAdapter extends FragmentPagerAdapter{
private ArrayList mList;
private ArrayList mTitle;
public pageAdapter(FragmentManager fm, ArrayList<Fragment> mList, ArrayList<String> mTitle) {
super(fm);
this.mList = mList;
this.mTitle = mTitle;
}
@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 mTitle.get(position);
}
}
获取数据
package utils;
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 {
public static String get(String urlStr) throws Exception {
URL url = new URL(urlStr);
//由一个有效的网址服务返回这个对象
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求方式
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
InputStream stream = connection.getInputStream();
String inputStr = getInputStr(stream);
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();
}
}