package com.example.lenovo.a06syxweek03.base;
import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity;
/**
Created by lenovo on 2018-10-25. */public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getContentView()); initView(); initViewpager(); }
protected abstract int getContentView(); protected abstract void initView(); protected abstract void initViewpager();}
package com.example.lenovo.a06syxweek03.base;
import android.content.Context; 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;
/**
Created by lenovo on 2018-10-25. */public abstract class BaseFragment extends Fragment { private Context mContext;
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(getContentView(), container, false); initview(view); return view; } protected abstract void initview(View view); @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (mContext==null){ mContext=getActivity(); } initData(); } protected abstract void initData(); protected abstract int getContentView();}
package com.example.lenovo.a06syxweek03;
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.LayoutInflaterCompat; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView;
import com.example.lenovo.a06syxweek03.base.BaseActivity; import com.example.lenovo.a06syxweek03.fragment.DianyingFragment; import com.example.lenovo.a06syxweek03.fragment.TopFragment; import com.example.lenovo.a06syxweek03.fragment.WodeFragment; import com.example.lenovo.a06syxweek03.fragment.YanchuFragment; import com.example.lenovo.a06syxweek03.fragment.YingyuanFragment;
import java.util.ArrayList; import java.util.List;
public class MainActivity extends BaseActivity implements View.OnClickListener{ private TextView Shouye; private TextView Dianying; private TextView Yingyuan; private TextView Yanchu; private TextView Wode; private ViewPager Vp; private List list; @Override protected int getContentView() { return R.layout.activity_main; }
@Override protected void initView() { Shouye=findViewById(R.id.shouye); Dianying=findViewById(R.id.dianying); Yingyuan=findViewById(R.id.yingyuan); Yanchu=findViewById(R.id.yanchu); Wode=findViewById(R.id.wode); Vp=findViewById(R.id.vp); Shouye.setOnClickListener(this); Dianying.setOnClickListener(this); Yingyuan.setOnClickListener(this); Yanchu.setOnClickListener(this); Wode.setOnClickListener(this); } @Override protected void initViewpager() { list=new ArrayList<>(); list.add(new TopFragment()); list.add(new DianyingFragment()); list.add(new YingyuanFragment()); list.add(new YanchuFragment()); list.add(new WodeFragment()); Vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } }); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.shouye: Vp.setCurrentItem(0); break; case R.id.dianying: Vp.setCurrentItem(1); break; case R.id.yingyuan: Vp.setCurrentItem(2); break; case R.id.yanchu: Vp.setCurrentItem(3); break; case R.id.wode: Vp.setCurrentItem(4); break; } }}
package com.example.lenovo.a06syxweek03.fragment;
import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; 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 android.widget.ListView;
import com.bwie.xlistview.XListView; import com.example.lenovo.a06syxweek03.HttpUtils; import com.example.lenovo.a06syxweek03.News; import com.example.lenovo.a06syxweek03.NewsAdapter; import com.example.lenovo.a06syxweek03.R; import com.example.lenovo.a06syxweek03.base.BaseFragment; import com.google.gson.Gson;
import java.util.ArrayList; import java.util.List;
/**
Created by lenovo on 2018-10-22. */public class NewsFragment extends BaseFragment{ public static final String url=“http://www.xieast.com/api/news/news.php?page=”; private int page=1; private String newsurl; private XListView listView; private List<News.DataBean> list; private NewsAdapter adapter; private Handler handler=new Handler();
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle=getArguments(); newsurl=bundle.getString("url"); } @Override protected int getContentView() { return R.layout.fragment_news; } @Override protected void initview(View v) { listView= v.findViewById(R.id.list_view); } @Override protected void initData() { list=new ArrayList<>(); adapter =new NewsAdapter(getActivity(),list); listView.setAdapter(adapter); listView.setPullRefreshEnable(true); listView.setPullLoadEnable(true); getdata(page,false); listView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page=1; getdata(page,true); } @Override public void onLoadMore() { page++; getdata(page,false); } }); } private void getdata(int page,final boolean b) { new AsyncTask<String, Integer, String>() { @Override protected String doInBackground(String... strings) { return HttpUtils.getInputHttp(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); News news=gson.fromJson(s,News.class); if (news!=null){ List<News.DataBean> data=news.getData(); if (data!=null){ if (!b){ list.clear(); } list.addAll(data); adapter.notifyDataSetChanged(); } } handler.postDelayed(new Runnable() { @Override public void run() { if (b){ listView.stopLoadMore(); }else{ listView.stopRefresh(); listView.setRefreshTime("刚刚"); } } },2000); } }.execute(url+page); }}
