首先先創(chuàng)建5個fragment
此步驟省略
創(chuàng)建bean 類
此步驟省略
創(chuàng)建v層
public interface Iview {
void showView(List<User.DataBean.ActivityInfoBean.ActivityInfoListBean> list);
void show(List<Bean> list);
}
創(chuàng)建m層
接口回調(diào)
public interface Imodel {
void getData(Observer observer);
}
model層
public class ImodelBack implements Imodel{
@Override
public void getData(Observer observer) {
OkHttpClient OkClient = new OkHttpClient.Builder().build();
//使用Retrofit進行設(shè)置
Retrofit retrofit = new Retrofit.Builder()
//添加OkHttpClient
.client(OkClient)
//添加接口頭部
.baseUrl(BaseUtils.BASE_URL)
//設(shè)置解析方式
.addConverterFactory(GsonConverterFactory.create())
//添加支持RxJAva
.addCallAdapterFactory(RxJavaCallAdapterFactory.create()).build();
URLUtils urlUtils = retrofit.create(URLUtils.class);
//得到被觀察者
urlUtils.getObservable()
//設(shè)置觀察者在主線程
.observeOn(AndroidSchedulers.mainThread())
//設(shè)置被觀察者在子線程
.subscribeOn(Schedulers.io())
//訂閱觀察者
.subscribe(observer);
}
p層
public class Mypresenter {
Iview iview;
ImodelBack imodelBack;
MyUserDao dao;
Context context;
public Mypresenter(Iview iview,Context context) {
this.iview = iview;
imodelBack=new ImodelBack();
this.context=context;
}
public void setData(boolean state){
dao=new MyUserDao(context);
if(!state){
// Toast.makeText(context, "1111111", Toast.LENGTH_SHORT).show();
//zoushujuku
List<Bean> been = dao.queryUserList();
//Toast.makeText(context, "22222"+been.size(), Toast.LENGTH_SHORT).show();
// Toast.makeText(context, "33333", Toast.LENGTH_SHORT).show();
iview.show(been);
}else{
//Toast.makeText(context, "44444", Toast.LENGTH_SHORT).show();
imodelBack.getData(new Observer<User>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.i("======", "onError: "+e);
}
@Override
public void onNext(User user) {
Log.i("=======", "onNext: "+user.toString());
List<User.DataBean.ActivityInfoBean.ActivityInfoListBean> listBeen=user.getData().getActivityInfo().getActivityInfoList();
iview.showView(listBeen);
dao.deleteAll();
List<User.DataBean.ActivityInfoBean.ActivityInfoListBean> list = user.getData().getActivityInfo().getActivityInfoList();
for (int i = 0; i < list.size(); i++) {
Bean bean = new Bean();
bean.setEndtime(list.get(i).getEndtime());
dao.insertUser(bean);
}
}
});
}
}
}
}
util
public class BaseUtils {
public static final String BASE_URL = "http://m.yunifang.com/";
}
public interface URLUtils {
@GET("yunifang/mobile/home")
Observable<User> getObservable();
}
主頁面
public class MainActivity extends AppCompatActivity {
@BindView(R.id.vp)
ViewPager vp;
@BindView(R.id.rg)
RadioGroup rg;
List<Fragment> list;
private One one;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initData();
boolean connectedByState = NetWorkUtils.isConnectedByState(this);
Log.i("---222---", "onCreate: ");
if(connectedByState){
Log.i("----", "showView: ");
Toast.makeText(this,"網(wǎng)絡(luò)已連接",Toast.LENGTH_LONG).show();
//EventBus.getDefault().postSticky(connectedByState);
}else{
Toast.makeText(this,"無網(wǎng)絡(luò)連接",Toast.LENGTH_LONG).show();
Log.i("--1111---", "showView: ");
}
MypagerAdpter madpter=new MypagerAdpter(getSupportFragmentManager());
vp.setAdapter(madpter);
one.getState(connectedByState);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
switch (i)
{
case R.id.rb1:
vp.setCurrentItem(0);
break;
case R.id.rb2:
vp.setCurrentItem(1);
break;
case R.id.rb3:
vp.setCurrentItem(2);
break;
case R.id.rb4:
vp.setCurrentItem(3);
break;
case R.id.rb5:
vp.setCurrentItem(4);
break;
}
}
});
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position)
{
case 0:
rg.check(R.id.rb1);
break;
case 1:
rg.check(R.id.rb2);
break;
case 2:
rg.check(R.id.rb3);
break;
case 3:
rg.check(R.id.rb4);
break;
case 4:
rg.check(R.id.rb5);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void initData() {
list=new ArrayList<Fragment>();
one = new One();
list.add(one);
list.add(new Two());
list.add(new Three());
list.add(new Four());
list.add(new Fieve());
}
class MypagerAdpter extends FragmentPagerAdapter{
public MypagerAdpter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
}
}
fragmrnt
public class One extends Fragment implements Iview{
RecyclerView rv;
Mypresenter pp;
private boolean state1;
boolean flag;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.one, null);
// EventBus.getDefault().register(getActivity());
rv=view.findViewById(R.id.rv);
initData();
return view;
}
@Override
public void onResume() {
super.onResume();
pp=new Mypresenter(this,getActivity());
pp.setData(flag);
}
private void initData() {
LinearLayoutManager lin=new LinearLayoutManager(getActivity());
rv.setLayoutManager(lin);
}
@Override
public void showView(List<User.DataBean.ActivityInfoBean.ActivityInfoListBean> listBeen) {
rv.setAdapter(new Myadpter(listBeen,getActivity()));
}
@Override
public void show(List<Bean> list) {
rv.setAdapter(new Myadpter_noneNet(list,getActivity()));
}
public void getState(boolean type){
this.flag=type;
}
}
判斷網(wǎng)絡(luò)狀態(tài) 數(shù)據(jù)庫 還是網(wǎng)絡(luò)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門然爆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來站粟,“玉大人,你說我怎么就攤上這事曾雕∽湔海” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵翻默,是天一觀的道長。 經(jīng)常有香客問我恰起,道長修械,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任检盼,我火速辦了婚禮肯污,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吨枉。我一直安慰自己蹦渣,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布貌亭。 她就那樣靜靜地躺著柬唯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪圃庭。 梳的紋絲不亂的頭發(fā)上锄奢,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼栏账!你這毒婦竟也來了帖族?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布旺垒,位于F島的核電站,受9級特大地震影響肤无,放射性物質(zhì)發(fā)生泄漏先蒋。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一宛渐、第九天 我趴在偏房一處隱蔽的房頂上張望竞漾。 院中可真熱鬧,春花似錦窥翩、人聲如沸业岁。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽笔时。三九已至,卻和暖如春幔荒,著一層夾襖步出監(jiān)牢的瞬間糊闽,已是汗流浹背梳玫。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 10月15日掂墓,州中院吳良軍院長一行赴理塘縣格木鄉(xiāng)學(xué)說村督導(dǎo)檢查脫貧攻堅工作谦纱。 在格木鄉(xiāng)學(xué)說村,吳院長...
- 博主大大小小的做了N個APP了君编,基本都離不開版本更新這個功能跨嘉。(注:愚蠢的地球人,難道你就不知道AppStore本...