频道管理+上拉下拉刷新+侧拉展示+倒计时跳转

时间:2019-01-18
本文章向大家介绍频道管理+上拉下拉刷新+侧拉展示+倒计时跳转,主要包括频道管理+上拉下拉刷新+侧拉展示+倒计时跳转使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.BaseActivity

public abstract class BaseActivity extends FragmentActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去掉ActionBar的方法
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(bindLayout());
        initView();
        initData();
        bindEvent();
    }
    public abstract int bindLayout();
    public abstract void initView();
    public abstract void initData();
    public abstract void bindEvent();

}

2.MainActivity

public class MainActivity extends BaseActivity {


    private TextView te;
    private SharedPreferences sp;

    @Override
    public int bindLayout() {
        return R.layout.activity_main;
    }

    @Override
    public void initView() {
        te = findViewById(R.id.te);
        //获取sp   第一个是文件名  第二个参数是文件访问权限
        sp = getSharedPreferences("login", Context.MODE_PRIVATE);
    }

    @Override
    public void initData() {
        //判断是否自动登录
        if(sp.getBoolean("自动登录",false)){
            startActivity(new Intent(MainActivity.this,SecondActivity.class));
            finish();
            //移除
            handler.removeCallbacksAndMessages(null);
            return ;
        }
    }

    @Override
    public void bindEvent() {
        te.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPreferences.Editor edit = sp.edit();
                edit.putBoolean("自动登录",true);
                edit.commit();
                startActivity(new Intent(MainActivity.this,SecondActivity.class));
                finish();
                //移除
                handler.removeCallbacksAndMessages(null);
            }
        });
        //发送消息
        handler.sendEmptyMessageDelayed(0,1000);
    }
    //销毁
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //移除
        handler.removeCallbacksAndMessages(null);
    }

    int time=5;
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case 0:
                    time--;
                    if(time>0){
                        te.setText(time+"");
                        handler.sendEmptyMessageDelayed(0,1000);
                    }else{
                        SharedPreferences.Editor edit = sp.edit();
                        edit.putBoolean("自动登录",true);
                        edit.commit();
                        startActivity(new Intent(MainActivity.this,SecondActivity.class));
                        finish();
                    }
                    break;
            }
        }
    };
}

3.SecondActivity

public class SecondActivity extends BaseActivity {

    private RadioGroup radi;
    private Frag_Fen f2;
    private Frag_Shou f1;
    private Frag_Wd f3;
    private XListView listView;
    private String str="http://www.xieast.com/api/news/news.php?page=2";
    private String str1="http://www.xieast.com/api/news/news.php?page=3";
    private ArrayList<CeDatas> data;
    private CeAdapter adapter;
    private ImageView img;
    private DrawerLayout draw;
    private Dao dao;

    @Override
    public int bindLayout() {
        return R.layout.second_main;
    }

    @Override
    public void initView() {
        radi = findViewById(R.id.radi);
        radi.check(radi.getChildAt(0).getId());
        listView = findViewById(R.id.xlist);
        img = findViewById(R.id.ceimg);
        draw = findViewById(R.id.draw);
        dao = new Dao(SecondActivity.this);
    }

    @Override
    public void initData() {
        String ss="http://image.baidu.com/search/down?tn=download&word=download&ie=utf8&fr=detail&url=http%3A%2F%2Fimg5.duitang.com%2Fuploads%2Fitem%2F201410%2F05%2F20141005082835_2RTzn.thumb.700_0.jpeg&thumburl=http%3A%2F%2Fimg2.imgtn.bdimg.com%2Fit%2Fu%3D3846895839%2C2711067435%26fm%3D26%26gp%3D0.jpg";
        //侧拉的 个人头像设置
        ImageLoader.getInstance().displayImage(ss, img);
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        f2 = new Frag_Fen();
        f1 = new Frag_Shou();
        f3 = new Frag_Wd();
        transaction.add(R.id.frag,f1);
        transaction.add(R.id.frag,f2);
        transaction.add(R.id.frag,f3);
        transaction.hide(f2).hide(f3).show(f1);
        transaction.commit();
        //侧拉里面的数据
        //启用
        listView.setPullLoadEnable(true);
        if(Http.isWork(SecondActivity.this)){
            Http.HttpAsyTask(str, new Http.CallTasks() {
                @Override
                public void getData(String s) {
                    Gson gson=new Gson();
                    CeBean ceBean = gson.fromJson(s, CeBean.class);
                    data = ceBean.getData();
                    //第一次加载数据 判断数据库有没有数据  有就添加 没有不添加
                    if(dao.query("news",null,null,null,null,null,null).moveToFirst()){

                    }else{
                        //没有就添加
                        for (CeDatas da:data) {
                            ContentValues contentValues=new ContentValues();
                            contentValues.put("tit",da.getTitle());
                            contentValues.put("name",da.getAuthor_name());
                            contentValues.put("img",da.getThumbnail_pic_s());
                            dao.insert("news",null, contentValues);
                        }
                    }
                    adapter=new CeAdapter(SecondActivity.this,data);
                    listView.setAdapter(adapter);
                }
            });
        }else{
            //没网的状态下  查询数据库
            Cursor cursor = dao.query("news", null, null, null, null, null, null);
            data=new ArrayList<>();
            if(cursor.moveToFirst()){
                do {
                    String name = cursor.getString(cursor.getColumnIndex("name"));
                    String tit = cursor.getString(cursor.getColumnIndex("tit"));
                    String img = cursor.getString(cursor.getColumnIndex("img"));
                    data.add(new CeDatas(name, img,tit));
                }while (cursor.moveToNext());
            }
            cursor.close();
            Toast.makeText(SecondActivity.this,"没有网络",Toast.LENGTH_LONG).show();
            adapter=new CeAdapter(SecondActivity.this,data);
            listView.setAdapter(adapter);
        }
    }

    @Override
    public void bindEvent() {
        draw.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(@NonNull View view, float v) {

            }

            @Override
            public void onDrawerOpened(@NonNull View view) {
                Toast.makeText(SecondActivity.this,"侧拉打开",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onDrawerClosed(@NonNull View view) {
                Toast.makeText(SecondActivity.this,"侧拉关闭",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onDrawerStateChanged(int i) {

            }
        });
        radi.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
                switch (i){
                    case R.id.radi1:
                        transaction.hide(f2).hide(f3).show(f1);
                        break;
                    case R.id.radi2:
                        transaction.hide(f1).hide(f3).show(f2);
                        break;
                    case R.id.radi3:
                        transaction.hide(f2).hide(f1).show(f3);
                        break;
                }
                transaction.commit();
            }
        });
        listView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {//下拉
                if(Http.isWork(SecondActivity.this)){
                    Http.HttpAsyTask(str, new Http.CallTasks() {
                        @Override
                        public void getData(String s) {
                            Gson gson=new Gson();
                            CeBean ceBean = gson.fromJson(s, CeBean.class);
                            data = ceBean.getData();
                            adapter=new CeAdapter(SecondActivity.this,data);
                            listView.setAdapter(adapter);
                            onLoad();
                        }
                    });
                }

            }

            @Override
            public void onLoadMore() {//上拉加载
                if(Http.isWork(SecondActivity.this)){
                    Http.HttpAsyTask(str1, new Http.CallTasks() {
                        @Override
                        public void getData(String s) {
                            Gson gson=new Gson();
                            CeBean ceBean1=gson.fromJson(s,CeBean.class);
                            ArrayList<CeDatas> data1 = ceBean1.getData();
                            data.addAll(data1);
                            adapter.notifyDataSetChanged();
                            onLoad();
                        }
                    });
                }

            }
        });
    }
    //一个方法
    private void onLoad() {
        //停止加载更多,重置头视图
        listView.stopRefresh();
        //停止加载更多,重置脚视图
        listView.stopLoadMore();
        //设置刷新时间
        listView.setRefreshTime("刷新成功");
    }
}

4.BaseFragment

public abstract class BaseFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(bindLayout(),container,false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initView();
        initData();
        bindEvent();
    }

    //绑定视图
    protected abstract int bindLayout();
    //绑定组件
    protected abstract void initView();
    //操作数据
    protected abstract void initData();
    //设置监听
    protected abstract void bindEvent();

}

5.Http

public class Http {
    //判断有没有网络状态
    public static boolean isWork(Context con){
        if(con!=null){
            ConnectivityManager manager= (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = manager.getActiveNetworkInfo();
            if(info!=null){
                    return info.isAvailable();
            }
        }
        return false;
    }
    public static void HttpAsyTask(String str, final CallTasks ca){
         new AsyncTask<String,Integer,String>(){

             @Override
             protected String doInBackground(String... strings) {
                 return isquest(strings[0]);
             }

             @Override
             protected void onPostExecute(String s) {
                 super.onPostExecute(s);
                 ca.getData(s);
             }
         }.execute(str);
    }
    public interface CallTasks{
        void getData(String s);
    }
    public static String isquest(String strUrl){
        try {
            URL url=new URL(strUrl);
            HttpURLConnection connection= (HttpURLConnection) url.openConnection();
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            connection.setRequestMethod("GET");
            int code = connection.getResponseCode();
            if(code==200){
                InputStream stream = connection.getInputStream();
                BufferedReader reader=new BufferedReader(new InputStreamReader(stream,"utf-8"));
                StringBuilder builder=new StringBuilder();
                String str="";
                while ((str=reader.readLine())!=null){
                    builder.append(str);
                }
                return builder.toString();
            }
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

6.Fragment第一个页面

public class Frag_Shou extends BaseFragment {

    private TabLayout tab;
    private ViewPager pager;
    private ArrayList<ChannelItem> tabData=new ArrayList<>();
    private ArrayList<Fragment> arr;
    private TabPagerAdapter adapter;
    private ImageView img;

    @Override
    protected int bindLayout() {
        return R.layout.frag_shou;
    }

    @Override
    protected void initView() {
        tab = getActivity().findViewById(R.id.tab);
        pager = getActivity().findViewById(R.id.pager);
        img = getActivity().findViewById(R.id.tabimg);
    }

    @Override
    protected void initData() {
        //查询数据库
        tabData = DBUtil.getTabData(getActivity());
        //加载Fragment
        arr = new ArrayList<>();
        for (int i = 0; i <tabData.size() ; i++) {
            ChannelItem channelItem = tabData.get(i);
            String name = channelItem.getName();
            if("头条".equals(name)){
                arr.add(new Tab_Shou());
            }else{
                arr.add(new Tab_Null());
            }
        }
        //设置适配器
        adapter = new TabPagerAdapter(getActivity().getSupportFragmentManager(), tabData, arr);
        pager.setAdapter(adapter);
        //绑定  让viewpager和tabLayout关联
        tab.setupWithViewPager(pager);
    }

    @Override
    protected void bindEvent() {
        //点击跳转频道管理
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //跳转Activity
                Intent intent=new Intent(getActivity(), ChannelActivity.class);
                //跳转回传
                startActivityForResult(intent,0);
            }
        });
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断是不是我们的回传 回传值是0
        if(resultCode==0){
            //查询数据库中的数据 ,找到我们要展示的Tab标签
            tabData = DBUtil.getTabData(getActivity());
            //便利数据(对数据进行刷新操作)
            for (int i = 0; i <tabData.size() ; i++) {
                ChannelItem channelItem = tabData.get(i);
                String name = channelItem.getName();
                //把数据添加到tab中
                tab.addTab(tab.newTab().setText(name));
                //设置fragment(可以根据名字创建Fragment)
                if("头条".equals(name)){
                    arr.add(new Tab_Shou());
                }else{
                    arr.add(new Tab_Null());
                }
                //设置适配器
                adapter = new TabPagerAdapter(getActivity().getSupportFragmentManager(), tabData, arr);
                pager.setAdapter(adapter);
                //绑定
                tab.setupWithViewPager(pager);
            }
        }
    }
}

7.TabNull

public class Tab_Shou extends BaseFragment {

    private PullToRefreshListView listv;
    private Dao dao;
    private String str="http://www.xieast.com/api/news/news.php?page=5";
    private String str1="http://www.xieast.com/api/news/news.php?page=6";
    private String str2="http://www.xieast.com/api/news/news.php?page=7";
    private ArrayList<CeDatas> data;
    private CeAdapter adapter;

    @Override
    protected int bindLayout() {
        return R.layout.tab_shou;
    }

    @Override
    protected void initView() {
        listv = getActivity().findViewById(R.id.pull);
        //设置模式
        listv.setMode(PullToRefreshBase.Mode.BOTH);
        //刷新的时候可以滑动
        listv.setScrollingWhileRefreshingEnabled(true);
        dao = new Dao(getActivity());
    }

    @Override
    protected void initData() {
        if(Http.isWork(getActivity())){
            Http.HttpAsyTask(str, new Http.CallTasks() {
                @Override
                public void getData(String s) {
                    Gson gson=new Gson();
                    CeBean ceBean = gson.fromJson(s, CeBean.class);
                    data = ceBean.getData();
                    if(dao.query("shou",null,null,null,null,null,null).moveToFirst()){

                    }else{
                        for (CeDatas ca : data) {
                            ContentValues values=new ContentValues();
                            values.put("tit",ca.getTitle());
                            values.put("name",ca.getAuthor_name());
                            values.put("img",ca.getThumbnail_pic_s());
                            dao.insert("shou",null,values);
                        }
                    }
                    adapter = new CeAdapter(getActivity(), data);
                    listv.setAdapter(adapter);
                }
            });
        }else{
            //没有网络  请求数据库
            Cursor cursor = dao.query("shou", null, null, null, null, null, null);
            data=new ArrayList<>();
            if(cursor.moveToFirst()){
                do {
                    String name = cursor.getString(cursor.getColumnIndex("name"));
                    String tit = cursor.getString(cursor.getColumnIndex("tit"));
                    String img = cursor.getString(cursor.getColumnIndex("img"));
                    data.add(new CeDatas(name,img,tit));
                }while (cursor.moveToNext());
            }
            cursor.close();
            Toast.makeText(getActivity(),"没有网络",Toast.LENGTH_LONG).show();
            adapter=new CeAdapter(getActivity(),data);
            listv.setAdapter(adapter);
        }
    }

    @Override
    protected void bindEvent() {
        listv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                //下拉刷新
                //判断有没有网
                if(Http.isWork(getActivity())){
                    Http.HttpAsyTask(str1, new Http.CallTasks() {
                        @Override
                        public void getData(String s) {
                            Gson gson=new Gson();
                            CeBean ceBean = gson.fromJson(s, CeBean.class);
                            data = ceBean.getData();
                            adapter=new CeAdapter(getActivity(),data);
                            listv.setAdapter(adapter);
                            listv.onRefreshComplete();
                        }
                    });
                }else{
                    Toast.makeText(getActivity(),"没有网络",Toast.LENGTH_LONG).show();
                }
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                //上拉加载
                if(Http.isWork(getActivity())){
                    Http.HttpAsyTask(str2, new Http.CallTasks() {
                        @Override
                        public void getData(String s) {
                            Gson gson=new Gson();
                            CeBean ceBean = gson.fromJson(s, CeBean.class);
                            ArrayList<CeDatas> data1 = ceBean.getData();
                            data.addAll(data1);
                            adapter.notifyDataSetChanged();
                            //当列表刷新时调用
                            listv.onRefreshComplete();
                        }
                    });
                }else{
                    Toast.makeText(getActivity(),"没有网络",Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

8.Dao

public class Dao {

    private final SQLiteDatabase db;

    public Dao(Context con){
        MySqlite mySqlite=new MySqlite(con);
        db = mySqlite.getWritableDatabase();
    }
    public long insert(String table, String nullColumnHack, ContentValues values) {
        return db.insert(table,nullColumnHack,values);
    }
    public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {
        return db.query(table,columns,selection,selectionArgs,groupBy,having,orderBy);
    }
}

9.MySqlite

public class MySqlite extends SQLiteOpenHelper {
    public MySqlite(Context context) {
        super(context, "bw.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table news(id integer primary key autoincrement,name text,tit text,img text)");
        sqLiteDatabase.execSQL("create table shou(id integer primary key autoincrement,name text,tit text,img text)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

10.App

public class App extends ChannelApplication {
    @Override
    public void onCreate() {
        super.onCreate();
        String path= Environment.getExternalStorageDirectory().getPath()+"/TuPian";
        File file=new File(path);
        DisplayImageOptions options=new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.zhan)
                .showImageOnFail(R.mipmap.shibai)
                .displayer(new CircleBitmapDisplayer())
                .bitmapConfig(Bitmap.Config.ARGB_8888)
                .build();
        ImageLoaderConfiguration loaderConfiguration=new ImageLoaderConfiguration.Builder(this)
                .defaultDisplayImageOptions(options)
                .memoryCacheExtraOptions(200,200)
                .memoryCacheSize(2 * 1024 * 1024)
                .threadPoolSize(3)
                .threadPriority(1000)
                .diskCache(new UnlimitedDiskCache(file))
                .diskCacheFileCount(50)
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                .diskCacheSize(50 * 1024 *1024)
                .build();
        ImageLoader imageLoader=ImageLoader.getInstance();
        imageLoader.init(loaderConfiguration);
    }
}

11.CeAdapter

public class CeAdapter extends BaseAdapter {
    private Context con;
    private ArrayList<CeDatas> arr;

    public CeAdapter(Context con, ArrayList<CeDatas> arr) {
        this.con = con;
        this.arr = arr;
    }

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

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public int getViewTypeCount() {
        return 2;
    }

    @Override
    public int getItemViewType(int position) {
        return position % 2;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        switch (getItemViewType(i)){
            case 0:
                ViewHolder0 vh;
                if(view==null){
                    view=LayoutInflater.from(con).inflate(R.layout.ce_one,null);
                    vh=new ViewHolder0();
                    vh.img=view.findViewById(R.id.img);
                    vh.tit=view.findViewById(R.id.tit);
                    view.setTag(vh);
                }else{
                    vh= (ViewHolder0) view.getTag();
                }
                vh.tit.setText(arr.get(i).getTitle());
                ImageLoader.getInstance().displayImage(arr.get(i).getThumbnail_pic_s(),vh.img);
                break;
            case 1:
                ViewHolder1 vh1;
                if(view==null){
                    view= LayoutInflater.from(con).inflate(R.layout.ce_two,null);
                    vh1=new ViewHolder1();
                    vh1.img=view.findViewById(R.id.img);
                    vh1.tit=view.findViewById(R.id.tit);
                    view.setTag(vh1);
                }else{
                    vh1= (ViewHolder1) view.getTag();
                }
                vh1.tit.setText(arr.get(i).getTitle());
                ImageLoader.getInstance().displayImage(arr.get(i).getThumbnail_pic_s(),vh1.img);
                break;
        }

        return view;

    }
    static class ViewHolder0{
        ImageView img;
        TextView tit;
    }
    static class ViewHolder1{
        ImageView img;
        TextView tit;
    }
}

12.TabPagerAdapter

public class TabPagerAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment> arr;
    private ArrayList<ChannelItem> tabData;
    public TabPagerAdapter(FragmentManager fm, ArrayList<ChannelItem> tabData,ArrayList<Fragment> arr) {
        super(fm);
        this.arr=arr;
        this.tabData=tabData;
    }

    @Override
    public Fragment getItem(int i) {
        return arr.get(i);
    }

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

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return tabData.get(position).getName();
    }
}

13.CeDatas

public class CeDatas {
    private  String author_name;
    private  String thumbnail_pic_s;
    private  String title;

    public CeDatas(String author_name, String thumbnail_pic_s, String title) {
        this.author_name = author_name;
        this.thumbnail_pic_s = thumbnail_pic_s;
        this.title = title;
    }

    @Override
    public String toString() {
        return "CeDatas{" +
                "author_name='" + author_name + '\'' +
                ", thumbnail_pic_s='" + thumbnail_pic_s + '\'' +
                ", title='" + title + '\'' +
                '}';
    }

    public String getAuthor_name() {
        return author_name;
    }

    public void setAuthor_name(String author_name) {
        this.author_name = author_name;
    }

    public String getThumbnail_pic_s() {
        return thumbnail_pic_s;
    }

    public void setThumbnail_pic_s(String thumbnail_pic_s) {
        this.thumbnail_pic_s = thumbnail_pic_s;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

14.CeBean

public class CeBean {
    private ArrayList<CeDatas> data;
    private String code;
    private String msg;

    @Override
    public String toString() {
        return "CeBean{" +
                "data=" + data +
                ", code='" + code + '\'' +
                ", msg='" + msg + '\'' +
                '}';
    }

    public ArrayList<CeDatas> getData() {
        return data;
    }

    public void setData(ArrayList<CeDatas> data) {
        this.data = data;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}


1.

frag_shou

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <android.support.design.widget.TabLayout
            android:id="@+id/tab"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#fff"
            app:tabGravity="fill"
            app:tabIndicatorColor="@color/color"
            app:tabMode="scrollable"
            app:tabSelectedTextColor="@color/color"
            app:tabTextColor="#000"
            />
        <ImageView
            android:id="@+id/tabimg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="18dp"
            android:src="@mipmap/menu"
            />
    </LinearLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />

1.second_main

 <android.support.v4.widget.DrawerLayout
        android:id="@+id/draw"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <FrameLayout
                android:id="@+id/frag"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"></FrameLayout>

            <RadioGroup
                android:id="@+id/radi"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <RadioButton
                    android:id="@+id/radi1"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:button="@null"
                    android:gravity="center"
                    android:padding="8dp"
                    android:background="@drawable/sele"
                    android:text="首页"
                    android:textSize="25sp" />

                <RadioButton
                    android:id="@+id/radi2"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:button="@null"
                    android:background="@drawable/sele"
                    android:gravity="center"
                    android:padding="8dp"
                    android:text="分类"
                    android:textSize="25sp" />

                <RadioButton
                    android:id="@+id/radi3"
                    android:background="@drawable/sele"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:button="@null"
                    android:gravity="center"
                    android:padding="8dp"
                    android:text="我的"
                    android:textSize="25sp" />
            </RadioGroup>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:orientation="vertical"
            android:background="#ccc"
            >
            <ImageView
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_gravity="center"
                android:id="@+id/ceimg"
                />
            <com.qy.xlistview.XListView
                android:id="@+id/xlist"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                ></com.qy.xlistview.XListView>
        </LinearLayout>
    </android.support.v4.widget.DrawerLayout>
</LinearLayout>