andriod——Retrofit+Fresco+MVP+Fragment判断网络获取数据



导依赖包:
 compile 'org.greenrobot:greendao:3.2.2' // add library
    //fresco加载图片
    compile 'com.facebook.fresco:fresco:1.5.0'
    //eventbus
    compile 'org.greenrobot:eventbus:3.1.1'
    compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
    //retrofit网络加载框架
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    //butterknife
    compile 'com.jakewharton:butterknife:8.5.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

adapter——MyAdapter
package com.example.week01.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.week01.R;
import com.example.week01.bean.UserBean;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

/**
 * Created by Administrator on 2017/12/2.
 */

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

     List<UserBean> list;
     Context context;

    public MyAdapter(List<UserBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Fresco.initialize(context);
        //加载视图
        View view=View.inflate(context, R.layout.iten_rec,null);
        return new MyViewHolder(view);
    }

    class MyViewHolder extends RecyclerView.ViewHolder
    {
        SimpleDraweeView img;
       TextView name;
       TextView msg;
       TextView time;
        public MyViewHolder(View itemView) {
            super(itemView);
            //初始化控件
            img=itemView.findViewById(R.id.sdv);
            name=itemView.findViewById(R.id.name);
            msg=itemView.findViewById(R.id.msg);
            time=itemView.findViewById(R.id.times);
        }
    }
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        UserBean resultsBean=list.get(position);
         MyViewHolder myViewHolder= (MyViewHolder) holder;

         myViewHolder.name.setText(resultsBean.getType());
         myViewHolder.msg.setText(resultsBean.getDes());
         myViewHolder.time.setText(resultsBean.getPublishedAt()+"");
    }

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

adapter——RecAdapter
package com.example.week01.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.week01.R;
import com.example.week01.bean.LogBean;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

/**
 * Created by Administrator on 2017/12/2.
 */

public class RecAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

     List<LogBean.ResultsBean> list;
     Context context;

    public RecAdapter(List<LogBean.ResultsBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Fresco.initialize(context);
        //加载视图
        View view=View.inflate(context, R.layout.iten_rec,null);
        return new MyViewHolder(view);
    }

    class MyViewHolder extends RecyclerView.ViewHolder
    {
        SimpleDraweeView img;
       TextView name;
       TextView msg;
       TextView time;
        public MyViewHolder(View itemView) {
            super(itemView);
            //初始化控件
            img=itemView.findViewById(R.id.sdv);
            name=itemView.findViewById(R.id.name);
            msg=itemView.findViewById(R.id.msg);
            time=itemView.findViewById(R.id.times);
        }
    }
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
         LogBean.ResultsBean resultsBean=list.get(position);
         MyViewHolder myViewHolder= (MyViewHolder) holder;
         if(resultsBean.getImages()!=null)
         {
             myViewHolder.img.setImageURI(resultsBean.getImages().get(0));
         }
         myViewHolder.name.setText(resultsBean.getType());
         myViewHolder.msg.setText(resultsBean.getDesc());
         myViewHolder.time.setText(resultsBean.getPublishedAt()+"");
    }

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

bean——LogBean
package com.example.week01.bean;

import java.util.List;

/**
 * Created by Administrator on 2017/12/2.
 */

public class LogBean {

    private boolean error;
    private List<ResultsBean> results;

    public boolean isError() {
        return error;
    }

    public void setError(boolean error) {
        this.error = error;
    }

    public List<ResultsBean> getResults() {
        return results;
    }

    public void setResults(List<ResultsBean> results) {
        this.results = results;
    }

    public static class ResultsBean {


        private String _id;
        private String createdAt;
        private String desc;
        private String publishedAt;
        private String source;
        private String type;
        private String url;
        private boolean used;
        private String who;
        private List<String> images;

        public ResultsBean(String _id, String createdAt, String desc, String publishedAt, String source, String type, String url, boolean used, String who, List<String> images) {
            this._id = _id;
            this.createdAt = createdAt;
            this.desc = desc;
            this.publishedAt = publishedAt;
            this.source = source;
            this.type = type;
            this.url = url;
            this.used = used;
            this.who = who;
            this.images = images;
        }

        public String get_id() {
            return _id;
        }

        public void set_id(String _id) {
            this._id = _id;
        }

        public String getCreatedAt() {
            return createdAt;
        }

        public void setCreatedAt(String createdAt) {
            this.createdAt = createdAt;
        }

        public String getDesc() {
            return desc;
        }

        public void setDesc(String desc) {
            this.desc = desc;
        }

        public String getPublishedAt() {
            return publishedAt;
        }

        public void setPublishedAt(String publishedAt) {
            this.publishedAt = publishedAt;
        }

        public String getSource() {
            return source;
        }

        public void setSource(String source) {
            this.source = source;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public boolean isUsed() {
            return used;
        }

        public void setUsed(boolean used) {
            this.used = used;
        }

        public String getWho() {
            return who;
        }

        public void setWho(String who) {
            this.who = who;
        }

        public List<String> getImages() {
            return images;
        }

        public void setImages(List<String> images) {
            this.images = images;
        }
    }
}
bean——NetBean
package com.example.week01.bean;

/**
 * Created by Administrator on 2017/12/2.
 */

public class NetBean {
    String netzhuan;
    public String getNetzhuan() {
        return netzhuan;
    }

    public void setNetzhuan(String netzhuan) {
        this.netzhuan = netzhuan;
    }
}

bean——UserBean
package com.example.week01.bean;

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;

/**
 * Created by Administrator on 2017/12/2.
 */
@Entity
public class UserBean {

    @Id(autoincrement =true)
    Long id;
    private String publishedAt;
    private String des;
    private String type;
    @Generated(hash = 1903720241)
    public UserBean(Long id, String publishedAt, String des, String type) {
        this.id = id;
        this.publishedAt = publishedAt;
        this.des = des;
        this.type = type;
    }
    @Generated(hash = 1203313951)
    public UserBean() {
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getPublishedAt() {
        return this.publishedAt;
    }
    public void setPublishedAt(String publishedAt) {
        this.publishedAt = publishedAt;
    }
    public String getDes() {
        return this.des;
    }
    public void setDes(String des) {
        this.des = des;
    }
    public String getType() {
        return this.type;
    }
    public void setType(String type) {
        this.type = type;
    }



}

fragment——fragment01
package com.example.week01.fragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.example.week01.GreenDaoHelper;
import com.example.week01.R;
import com.example.week01.adapter.MyAdapter;
import com.example.week01.adapter.RecAdapter;
import com.example.week01.bean.DaoSession;
import com.example.week01.bean.LogBean;
import com.example.week01.bean.NetBean;
import com.example.week01.bean.UserBean;
import com.example.week01.utils.NetListener;
import com.example.week01.utils.RetrofitHepler;
import com.example.week01.utils.ServerApi;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

/**
 * Created by Administrator on 2017/12/2.
 */
public class fragment01  extends Fragment {

    ServerApi serverApi;
    RecAdapter adapter;
    @BindView(R.id.rec)
    RecyclerView mRec;
    private View view;
    private Unbinder unbinder;
    private DaoSession session;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        //注册
        EventBus.getDefault().register(this);
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        //加载视图
        View view = View.inflate(getActivity(), R.layout.fragment01, null);
        session= GreenDaoHelper.getDaoSession(getActivity());
        unbinder = ButterKnife.bind(this, view);
        mRec.setLayoutManager(new LinearLayoutManager(getContext()));
        //创建ServerApi对象
        serverApi = RetrofitHepler.getServerApi();

        if(!new NetListener().isNetworkConnected(getActivity()))
        {
            /**
             * 无网状态下
             */
            //查询记录
            List<UserBean> areas = session.getUserBeanDao().loadAll();
            MyAdapter myAdapter=new MyAdapter(areas,getActivity());
            mRec.setAdapter(myAdapter);
        }
        else
        {
            Toast.makeText(getActivity(),"有网",Toast.LENGTH_LONG).show();
            Call<LogBean> logBeanCall = serverApi.logBeanCall();
            logBeanCall.enqueue(new Callback<LogBean>() {
                @Override
                public void onResponse(Call<LogBean> call, Response<LogBean> response) {
                    //请求成功
                    final LogBean logBean = response.body();
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //实例化适配器
                            adapter = new RecAdapter(logBean.getResults(), getActivity());
                            mRec.setAdapter(adapter);

                            //存值到数据库
                            for(int i=0;i<logBean.getResults().size();i++)
                            {
                                LogBean.ResultsBean r=logBean.getResults().get(i);
                                UserBean userBean=new UserBean(System.currentTimeMillis(),r.getPublishedAt(),r.getDesc(),r.getType());
                                session.insert(userBean);
                            }

                        }
                    });

                }

                @Override
                public void onFailure(Call<LogBean> call, Throwable t) {

                }
            });
        }
        return view;
    }

    @Subscribe
    public void isNetWork(NetBean netBean) {
        Toast.makeText(getContext(), netBean.getNetzhuan(), Toast.LENGTH_LONG).show();
        //判断
        if (netBean.getNetzhuan().equals("网络连接中~")) {
            Call<LogBean> logBeanCall = serverApi.logBeanCall();
            logBeanCall.enqueue(new Callback<LogBean>() {
                @Override
                public void onResponse(Call<LogBean> call, Response<LogBean> response) {
                    //请求成功
                    LogBean logBean = response.body();
                }

                @Override
                public void onFailure(Call<LogBean> call, Throwable t) {

                }
            });
        }
    }

    //销毁防止内存泄露
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
        EventBus.getDefault().unregister(this);
    }
}

fragment——fragment02
package com.example.week01.fragment;

import android.os.Bundle;
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.week01.R;

/**
 * Created by Administrator on 2017/12/2.
 */

public class fragment02 extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view=View.inflate(getActivity(), R.layout.fragment02,null);

        return view;
    }
}
fragment——fragment03
package com.example.week01.fragment;

import android.os.Bundle;
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.week01.R;
/**
 * Created by Administrator on 2017/12/2.
 */

public class fragment03 extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view=View.inflate(getActivity(), R.layout.fragment03,null);

        return view;
    }
}

utils——App
package com.example.week01.utils;

import android.app.Application;

import com.facebook.drawee.backends.pipeline.Fresco;

/**
 * Created by Administrator on 2017/12/2.
 */

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}

utils——NetListener
package com.example.week01.utils;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 * Created by Administrator on 2017/12/2.
 * 网络状态判断工具类
 */

public class NetListener {

    public boolean isNetworkConnected(Context context) {
            if (context != null) {
                   ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                          .getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
                if (mNetworkInfo != null) {
                          return mNetworkInfo.isAvailable();
                    }
             }
            return false;
        }
}

utils——RetrofitHepler
package com.example.week01.utils;

import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by Administrator on 2017/12/2.
 */

public class RetrofitHepler {

        public  static OkHttpClient okHttpClient;
        public static ServerApi serverApi;

         static
         {
             initOkHttpClent();
         }

         //初始化OkHttpClient
         public  static void initOkHttpClent()
         {
             if(okHttpClient==null)
             {
                 synchronized (RetrofitHepler.class)
                 {
                     if(okHttpClient==null)
                     {
                         okHttpClient=new OkHttpClient();
                     }
                 }
             }
         }


         public  static ServerApi getServerApi()
         {
             if(serverApi==null)
             {
                 synchronized (ServerApi.class)
                 {
                     if(serverApi==null)
                     {
                         serverApi=OnCreatApi(ServerApi.class,UrlApi.HOST_URL);
                     }
                 }
             }
             return serverApi;
         }

         //定义方法初始化ServerApi
         public  static<T> T OnCreatApi(Class<T> tClass,String url)
         {
             Retrofit retrofit=new Retrofit
                     .Builder().baseUrl(url)
                     .addConverterFactory(GsonConverterFactory.create())
                     .build();
             return retrofit.create(tClass);
         }
 }

utils——ServerApi
package com.example.week01.utils;


import com.example.week01.bean.LogBean;

import retrofit2.Call;
import retrofit2.http.GET;

/**
 * Created by Administrator on 2017/12/2.
 */

public interface ServerApi {

      @GET(UrlApi.URL)
     Call<LogBean> logBeanCall();
}

utils——UrlApi
package com.example.week01.utils;

/**
 * Created by Administrator on 2017/12/2.
 */

public class UrlApi {

    public static final String HOST_URL="http://gank.io/api/data/Android/";
    public static final String URL="10/1";

}

GreenDaoHelper
package com.example.week01;

import android.app.Application;
import android.content.Context;
import android.content.ContextWrapper;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.example.week01.bean.DaoMaster;
import com.example.week01.bean.DaoSession;
import com.facebook.drawee.backends.pipeline.Fresco;

import java.io.File;
import java.io.IOException;

/**
 * Created by Administrator on 2017/12/2.
 */

public class GreenDaoHelper extends Application {
    private GreenDaoHelper Instance;
    private static DaoMaster daoMaster;
    private static DaoSession daoSession;

    public GreenDaoHelper getInstance() {
        if (Instance == null) {
            Instance = this;
        }
        return Instance;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }

    /**
     * 获取DaoMaster
     *
     * @param context
     * @return
     */
    public static DaoMaster getDaoMaster(Context context) {

        if (daoMaster == null) {

            try{
                ContextWrapper wrapper = new ContextWrapper(context) {
                    /**
                     * 获得数据库路径,如果不存在,则创建对象对象
                     *
                     * @param name
                     */
                    @Override
                    public File getDatabasePath(String name) {
                        // 判断是否存在sd卡
                        boolean sdExist = android.os.Environment.MEDIA_MOUNTED.equals(android.os.Environment.getExternalStorageState());
                        if (!sdExist) {// 如果不存在,
                            Log.e("SD卡管理:", "SD卡不存在,请加载SD卡");
                            return null;
                        } else {// 如果存在
                            // 获取sd卡路径
                            String dbDir = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
                            dbDir += "/Android";// 数据库所在目录
                            String dbPath = dbDir + "/" + name;// 数据库路径
                            // 判断目录是否存在,不存在则创建该目录
                            File dirFile = new File(dbDir);
                            if (!dirFile.exists())
                                dirFile.mkdirs();

                            // 数据库文件是否创建成功
                            boolean isFileCreateSuccess = false;
                            // 判断文件是否存在,不存在则创建该文件
                            File dbFile = new File(dbPath);
                            if (!dbFile.exists()) {
                                try {
                                    isFileCreateSuccess = dbFile.createNewFile();// 创建文件
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                            } else
                                isFileCreateSuccess = true;
                            // 返回数据库文件对象
                            if (isFileCreateSuccess)
                                return dbFile;
                            else
                                return super.getDatabasePath(name);
                        }
                    }

                    /**
                     * 重载这个方法,是用来打开SD卡上的数据库的,android 2.3及以下会调用这个方法。
                     *
                     * @param name
                     * @param mode
                     * @param factory
                     */
                    @Override
                    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory) {
                        return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(name), null);
                    }

                    /**
                     * Android 4.0会调用此方法获取数据库。
                     *
                     * @see ContextWrapper#openOrCreateDatabase(String,
                     *      int,
                     *      SQLiteDatabase.CursorFactory,
                     *      DatabaseErrorHandler)
                     * @param name
                     * @param mode
                     * @param factory
                     * @param errorHandler
                     */
                    @Override
                    public SQLiteDatabase openOrCreateDatabase(String name, int mode, SQLiteDatabase.CursorFactory factory, DatabaseErrorHandler errorHandler) {
                        return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(name), null);
                    }
                };
                DaoMaster.OpenHelper helper = new DaoMaster.DevOpenHelper(wrapper,"test.db",null);
                daoMaster = new DaoMaster(helper.getWritableDatabase()); //获取未加密的数据库
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return daoMaster;
    }

    /**
     * 获取DaoSession对象
     *
     * @param context
     * @return
     */
    public static DaoSession getDaoSession(Context context) {

        if (daoSession == null) {
            if (daoMaster == null) {
                getDaoMaster(context);
            }
            daoSession = daoMaster.newSession();
        }

        return daoSession;
    }
}

MainActivity
package com.example.week01;

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.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.RadioButton;

import com.example.week01.bean.NetBean;
import com.example.week01.fragment.fragment01;
import com.example.week01.fragment.fragment02;
import com.example.week01.fragment.fragment03;
import com.example.week01.fragment.fragment04;
import com.example.week01.fragment.fragment05;
import com.example.week01.utils.NetListener;

import org.greenrobot.eventbus.EventBus;

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

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.flt)
    ViewPager mFlt;
    @BindView(R.id.shouye)
    RadioButton mShouye;
    @BindView(R.id.xf)
    RadioButton mXf;
    @BindView(R.id.sc)
    RadioButton mSc;
    @BindView(R.id.tt)
    RadioButton mTt;
    @BindView(R.id.gd)
    RadioButton mGd;

    List<Fragment> fragments;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        fragments=new ArrayList<>();
        fragments.add(new fragment01());
        fragments.add(new fragment02());
        fragments.add(new fragment03());
        fragments.add(new fragment04());
        fragments.add(new fragment05());
        mFlt.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return fragments.get(position);
            }

            @Override
            public int getCount() {
                return fragments.size();
            }
        });
        mFlt.setCurrentItem(0);
        NetBean netBean=new NetBean();
        if(!new NetListener().isNetworkConnected(MainActivity.this))
        {
            netBean.setNetzhuan("当前没网!!!");
        }
        else
        {
            netBean.setNetzhuan("网络连接中~");
        }
        EventBus.getDefault().post(netBean);
    }

    @OnClick({R.id.flt, R.id.shouye, R.id.xf, R.id.sc, R.id.tt, R.id.gd})
    public void onClick(View v) {
        switch (v.getId()) {
            default:
                break;
            case R.id.flt:
                break;
            case R.id.shouye:
                mFlt.setCurrentItem(0);//显示页面
                break;
            case R.id.xf:
                mFlt.setCurrentItem(1);
                break;
            case R.id.sc:
                mFlt.setCurrentItem(2);
                break;
            case R.id.tt:
                mFlt.setCurrentItem(3);
                break;
            case R.id.gd:
                mFlt.setCurrentItem(4);
                break;
        }
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // EventBus.getDefault().unregister(this);
    }
}

activity_main.xml
<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="9"
        android:id="@+id/flt"
        />
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal"
        >
        <RadioButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="首页"
            android:button="@null"
            android:id="@+id/shouye"/>
        <RadioButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:gravity="center"
            android:layout_weight="1"
            android:text="想法"
            android:button="@null"
            android:id="@+id/xf"/>
        <RadioButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:gravity="center"
            android:layout_weight="1"
            android:text="市场"
            android:button="@null"
            android:id="@+id/sc"/>
        <RadioButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:gravity="center"
            android:layout_weight="1"
            android:text="通知"
            android:button="@null"
            android:id="@+id/tt"/>
        <RadioButton
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:gravity="center"
            android:layout_weight="1"
            android:text="更多"
            android:button="@null"
            android:id="@+id/gd"/>
    </RadioGroup>

</LinearLayout>

fragment01.xml
<?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.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/rec"></android.support.v7.widget.RecyclerView>
</LinearLayout>

fragment02.xml
<?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">
<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="想法"
    />
</LinearLayout>

iten_rec.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <com.facebook.drawee.view.SimpleDraweeView
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:id="@+id/sdv"
            fresco:placeholderImage="@mipmap/ic_launcher"
           />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/name"/>
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:id="@+id/msg"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/times"/>

</LinearLayout>

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.week01">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>






 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值