DAO层:
public class SqlDao {
private MyHelper myHelper;
private String table="nows";
public SqlDao(Context context){
myHelper = new MyHelper(context);
}
//添加数据库
public void insertData(String dataUrl,String jsonStr){
SQLiteDatabase database = myHelper.getWritableDatabase();
database.delete(table,"url=?",new String[]{dataUrl});
ContentValues values = new ContentValues();
values.put("url",dataUrl);
values.put("json",jsonStr);
database.insert(table,null,values);
}
//从查询数据库
public String selectData(String dataUrl){
String json="";
SQLiteDatabase database = myHelper.getWritableDatabase();
Cursor cursor = database.query(table, null, "url=?", new String[]{dataUrl}, null, null, null);
while (cursor.moveToNext()){
json = cursor.getString(cursor.getColumnIndex("json"));
}
return json;
}
}
MyHelper:
public class MyHelper extends SQLiteOpenHelper {
public MyHelper(Context context) {
super(context, "bawei.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table nows(url varchar(100),json varchar(500))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
HttpUtil工具类:
public class HttpUtil {
//判断网络
public static boolean isNetconnected(Context context){
ConnectivityManager manager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = manager.getActiveNetworkInfo();
if(info!=null){
return info.isAvailable();
}
return false;
}
//请求数据
public static String getNetData(String dataUrl){
try{
URL url = new URL(dataUrl);
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int code = connection.getResponseCode();
if(code==200){
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder=new StringBuilder();
String str="";
while ((str=reader.readLine())!=null){
builder.append(str);
}
return builder.toString();
}
}catch (Exception e){
e.printStackTrace();
}
return "";
}
//接口
public interface MyCallBack
{
void getData(String str);
}
//回调方法
public static void MyAsyncTask(String dataUrl, final MyCallBack myCallBack){
new AsyncTask<String,Void,String>(){
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
myCallBack.getData(s);
}
@Override
protected String doInBackground(String... strings) {
return HttpUtil.getNetData(strings[0]);
}
}.execute(dataUrl);
}
}
福利借口:
FuBean:
public class FuBean {
private List<Fu>results;
public FuBean(List<Fu> results) {
this.results = results;
}
public List<Fu> getResults() {
return results;
}
public void setResults(List<Fu> results) {
this.results = results;
}
@Override
public String toString() {
return "FuBean{" +
"results=" + results +
'}';
}
}
Fu:
public class Fu {
private String who;
private String url;
public Fu(String who, String url) {
this.who = who;
this.url = url;
}
public String getWho() {
return who;
}
public void setWho(String who) {
this.who = who;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "Fu{" +
"who='" + who + '\'' +
", url='" + url + '\'' +
'}';
}
}
新闻借口:
News
public class News {
private String news_title;
private String news_summary;
private String pic_url;
public News(String news_title, String news_summary, String pic_url) {
this.news_title = news_title;
this.news_summary = news_summary;
this.pic_url = pic_url;
}
public String getNews_title() {
return news_title;
}
public void setNews_title(String news_title) {
this.news_title = news_title;
}
public String getNews_summary() {
return news_summary;
}
public void setNews_summary(String news_summary) {
this.news_summary = news_summary;
}
public String getPic_url() {
return pic_url;
}
public void setPic_url(String pic_url) {
this.pic_url = pic_url;
}
@Override
public String toString() {
return "News{" +
"news_title='" + news_title + '\'' +
", news_summary='" + news_summary + '\'' +
", pic_url='" + pic_url + '\'' +
'}';
}
}
NewsBean
public class NewsBean {
private List<News>data;
public NewsBean(List<News> data) {
this.data = data;
}
public List<News> getData() {
return data;
}
public void setData(List<News> data) {
this.data = data;
}
@Override
public String toString() {
return "NewsBean{" +
"data=" + data +
'}';
}
}
轮播图接口:
pick
public class Pick {
private String imageUrl;
public Pick(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
@Override
public String toString() {
return "Pick{" +
"imageUrl='" + imageUrl + '\'' +
'}';
}
}
pickBean
public class PickBean {
private List<Pick>result;
public PickBean(List<Pick> result) {
this.result = result;
}
public List<Pick> getResult() {
return result;
}
public void setResult(List<Pick> result) {
this.result = result;
}
@Override
public String toString() {
return "PickBean{" +
"result=" + result +
'}';
}
}
多条目接口
Nows
public class Nows {
private String title;
private String author_name;
private String thumbnail_pic_s02;
public Nows(String title, String author_name, String thumbnail_pic_s02) {
this.title = title;
this.author_name = author_name;
this.thumbnail_pic_s02 = thumbnail_pic_s02;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.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_s02() {
return thumbnail_pic_s02;
}
public void setThumbnail_pic_s02(String thumbnail_pic_s02) {
this.thumbnail_pic_s02 = thumbnail_pic_s02;
}
@Override
public String toString() {
return "Nows{" +
"title='" + title + '\'' +
", author_name='" + author_name + '\'' +
", thumbnail_pic_s02='" + thumbnail_pic_s02 + '\'' +
'}';
}
}
NowsBean
public class NowsBean {
private List<Nows>data;
public NowsBean(List<Nows> data) {
this.data = data;
}
public List<Nows> getData() {
return data;
}
public void setData(List<Nows> data) {
this.data = data;
}
@Override
public String toString() {
return "NowsBean{" +
"data=" + data +
'}';
}
}
BaseFragment
package com.example.zenghe02.fragment;
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;
/**
* @Author:Yingwei
* @Date:2019/3/7 9:53
* @Description:描述信息
*/
public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(initLayout(), container, false);
return view;
}
public abstract int initLayout();
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView();
}
public abstract void initView();
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initData();
initLinner();
}
public abstract void initData();
public abstract void initLinner();
public <T extends View> T fvbi(int resId){
return getView().findViewById(resId);
}
}
ThirdFragment
package com.example.zenghe02.fragment;
import com.example.zenghe02.R;
/**
* @Author:Yingwei
* @Date:2019/3/7 10:00
* @Description:描述信息
*/
public class ThirdFragment extends BaseFragment{
@Override
public int initLayout() {
return R.layout.third_fragment;
}
@Override
public void initView() {
}
@Override
public void initData() {
}
@Override
public void initLinner() {
}
}
FirstFragment:
public class FirstFragment extends BaseFragment{
private TabLayout tabLayout;
private ViewPager viewPager;
private TextView text_pinDao;
private MyTabFragment myTabFragment;
private List<Fragment>fflist=new ArrayList<>();
private ArrayList<String>tabs=new ArrayList<>();
@Override
public int initLayout() {
return R.layout.first_fragment;
}
@Override
public void initView() {
tabLayout=fvbi(R.id.tab_fLayout);
viewPager=fvbi(R.id.view_fpager);
text_pinDao=fvbi(R.id.text_pindao);
}
@Override
public void initData() {
fflist.add(new NewsFragment());
fflist.add(new KanDianFragment());
fflist.add(new ShiPinFragment());
tabs.add("新闻");
tabs.add("看点");
tabs.add("视频");
myTabFragment = new MyTabFragment(getChildFragmentManager(), fflist, tabs);
viewPager.setAdapter(myTabFragment);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public void initLinner() {
text_pinDao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转到频道页面
Intent intent = new Intent(getActivity(), ChannelActivity.class);
intent.putStringArrayListExtra("key",tabs);
startActivityForResult(intent,100);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100&&resultCode==200){
ArrayList<String> key = data.getStringArrayListExtra("key");
fflist.clear();
tabs.clear();
tabLayout.removeAllTabs();
tabs.addAll(key);
for(int i=0;i<tabs.size();i++){
TabLayout.Tab tab = tabLayout.newTab();
tab.setText(tabs.get(i));
tabLayout.addTab(tab);
if(i==0){
fflist.add(new NewsFragment());
}else if(i==1){
fflist.add(new KanDianFragment());
}else if(i==2) {
fflist.add(new ShiPinFragment());
}else{
fflist.add(new MyTab());
}
}
myTabFragment.notifyDataSetChanged();
tabLayout.setupWithViewPager(viewPager);
}
}
}
kandianFragment:
public class KanDianFragment extends BaseFragment{
private ListView listView;
private String mDataUrl="http://www.xieast.com/api/news/news.php?page=1";
private List<Nows>wlist=new ArrayList<>();
@Override
public int initLayout() {
return R.layout.kandian_fragment;
}
@Override
public void initView() {
listView=fvbi(R.id.listView);
}
@Override
public void initData() {
HtopUtil.AsnycTasks(mDataUrl, new HtopUtil.MyCallBacks() {
@Override
public void getDatas(String str) {
Log.i("aaa",""+str);
Gson gson=new Gson();
NowsBean nowsBean = gson.fromJson(str, NowsBean.class);
List<Nows> data = nowsBean.getData();
wlist.addAll(data);
Log.i("aaa",""+wlist);
MyNowAdapter myNowAdapter = new MyNowAdapter(wlist, getActivity());
listView.setAdapter(myNowAdapter);
}
});
}
@Override
public void initLinner() {
}
}
NewsFragment:
public class NewsFragment extends BaseFragment{
private PullToRefreshListView pullListView;
private int page=1;
private SqlDao dao;
private MyNewsAdapter myNewsAdapter;
private List<News>nlist=new ArrayList<>();
private String dataUrl="http://api.expoon.com/AppNews/getNewsList/type/1/p/";
@Override
public int initLayout() {
return R.layout.news_fragment;
}
@Override
public void initView() {
pullListView=fvbi(R.id.pull_listView);
pullListView.setMode(PullToRefreshBase.Mode.BOTH);
pullListView.setScrollingWhileRefreshingEnabled(true);
}
@Override
public void initData() {
dao = new SqlDao(getActivity());
myNewsAdapter = new MyNewsAdapter(nlist, getActivity());
pullListView.setAdapter(myNewsAdapter);
myData(page);
}
private void myData(final int page) {
if(HttpUtil.isNetconnected(getActivity())){
HttpUtil.MyAsyncTask(dataUrl + page, new HttpUtil.MyCallBack() {
@Override
public void getData(String str) {
dao.insertData(dataUrl+page,str);
jsonParse(str);
}
});
}else {
Toast.makeText(getActivity(), "无网", Toast.LENGTH_SHORT).show();
String selectData = dao.selectData(dataUrl + page);
jsonParse(selectData);
}
}
private void jsonParse(String s) {
Gson gson=new Gson();
NewsBean newsBean = gson.fromJson(s, NewsBean.class);
List<News> data = newsBean.getData();
nlist.addAll(data);
myNewsAdapter.notifyDataSetChanged();
pullListView.onRefreshComplete();
}
@Override
public void initLinner() {
pullListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
myData(page);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page++;
myData(page);
}
});
}
}
SecondFragment:
public class SecondFragment extends BaseFragment{
@Override
public int initLayout() {
return R.layout.second_fragment;
}
@Override
public void initView() {
}
@Override
public void initData() {
}
@Override
public void initLinner() {
}
}
ShiPinFragment:
public class ShiPinFragment extends BaseFragment{
private Banner banner;
private GridView gridView;
private List<Fu>lists=new ArrayList<>();
private List<String>plist=new ArrayList<>();
private String pickUrl="http://172.17.8.100/small/commodity/v1/bannerShow";
private String gridUrl="http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1";
@Override
public int initLayout() {
return R.layout.shipin_fragment;
}
@Override
public void initView() {
banner=fvbi(R.id.my_banner);
gridView=fvbi(R.id.grid_view);
}
@Override
public void initData() {
HpickUtil.AsyncTask(pickUrl, new HpickUtil.MyPickBack() {
@Override
public void getPick(String str) {
Log.i("ccc",""+str);
Gson gson=new Gson();
PickBean pickBean = gson.fromJson(str, PickBean.class);
List<Pick> result = pickBean.getResult();
for (int i=0;i<result.size();i++){
plist.add(result.get(i).getImageUrl());
}
}
});
banner.isAutoPlay(true);
banner.setDelayTime(2000);
banner.setImages(plist);
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
banner.start();
HpptUtil.AsyncFuTask(gridUrl, new HpptUtil.MyFuBack() {
@Override
public void getFuData(String str) {
Log.i("aa",""+str);
Gson gson=new Gson();
FuBean fuBean = gson.fromJson(str, FuBean.class);
List<Fu> results = fuBean.getResults();
lists.addAll(results);
FuAdapter fuAdapter = new FuAdapter(lists, getActivity());
gridView.setAdapter(fuAdapter);
}
});
}
@Override
public void initLinner() {
}
}
ThirdFragment:
public class ThirdFragment extends BaseFragment{
@Override
public int initLayout() {
return R.layout.third_fragment;
}
@Override
public void initView() {
}
@Override
public void initData() {
}
@Override
public void initLinner() {
}
}
MyTab:
public class MyTab extends BaseFragment{
@Override
public int initLayout() {
return R.layout.mytab;
}
@Override
public void initView() {
}
@Override
public void initData() {
}
@Override
public void initLinner() {
}
}
适配器:
FuAdapter:
public class FuAdapter extends BaseAdapter {
private List<Fu>lists;
private Context context;
public FuAdapter(List<Fu> lists, Context context) {
this.lists = lists;
this.context = context;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
convertView=View.inflate(context, R.layout.fgrid,null);
holder=new ViewHolder();
holder.imageView=convertView.findViewById(R.id.imageView_001);
holder.textView=convertView.findViewById(R.id.text_001);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
holder.textView.setText(lists.get(position).getWho());
Glide.with(context).load(lists.get(position).getUrl()).into(holder.imageView);
return convertView;
}
class ViewHolder{
private ImageView imageView;
private TextView textView;
}
}
MyFragmentAdapter:
public class MyFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment>flist;
private String[] titles;
public MyFragmentAdapter(FragmentManager fm, List<Fragment> flist, String[] titles) {
super(fm);
this.flist = flist;
this.titles = titles;
}
@Override
public Fragment getItem(int i) {
return flist.get(i);
}
@Override
public int getCount() {
return flist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}
MyGridFragment:
public class MyGridAdapter extends BaseAdapter {
private List<String>list;
private Context context;
public MyGridAdapter(List<String> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
convertView=View.inflate(context, R.layout.mygrid,null);
holder=new ViewHolder();
holder.textView=convertView.findViewById(R.id.text01);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
holder.textView.setText(list.get(position));
return convertView;
}
class ViewHolder{
private TextView textView;
}
}
MyNewsAdapter:
public class MyNewsAdapter extends BaseAdapter {
private List<News>nlist;
private Context context;
public MyNewsAdapter(List<News> nlist, Context context) {
this.nlist = nlist;
this.context = context;
}
@Override
public int getCount() {
return nlist.size();
}
@Override
public Object getItem(int position) {
return nlist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
convertView=View.inflate(context, R.layout.pull,null);
holder=new ViewHolder();
holder.imageView=convertView.findViewById(R.id.news_image);
holder.textView1=convertView.findViewById(R.id.news_text01);
holder.textView2=convertView.findViewById(R.id.news_text02);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
Glide.with(context).load(nlist.get(position).getPic_url()).into(holder.imageView);
holder.textView1.setText(nlist.get(position).getNews_title());
holder.textView2.setText(nlist.get(position).getNews_summary());
return convertView;
}
class ViewHolder{
private ImageView imageView;
private TextView textView1,textView2;
}
}
MyNowsAdapter:
public class MyNowAdapter extends BaseAdapter {
private List<Nows>wlist;
private Context context;
public MyNowAdapter(List<Nows> wlist, Context context) {
this.wlist = wlist;
this.context = context;
}
@Override
public int getCount() {
return wlist.size();
}
@Override
public Object getItem(int position) {
return wlist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position%3;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
switch (getItemViewType(position)){
case 0:
ViewHolder1 holder1;
if(convertView==null){
convertView=View.inflate(context,R.layout.listview1,null);
holder1=new ViewHolder1();
holder1.textView1=convertView.findViewById(R.id.mtext_01);
holder1.textView2=convertView.findViewById(R.id.mtext_02);
convertView.setTag(holder1);
}else{
holder1=(ViewHolder1) convertView.getTag();
}
holder1.textView1.setText(wlist.get(position).getTitle());
holder1.textView2.setText(wlist.get(position).getAuthor_name());
break;
case 1:
ViewHolder2 holder2;
if(convertView==null){
convertView=View.inflate(context,R.layout.listview2,null);
holder2=new ViewHolder2();
holder2.imageView1=convertView.findViewById(R.id.mimage_01);
holder2.textView3=convertView.findViewById(R.id.mtext_03);
holder2.textView4=convertView.findViewById(R.id.mtext_04);
convertView.setTag(holder2);
}else{
holder2=(ViewHolder2) convertView.getTag();
}
holder2.textView3.setText(wlist.get(position).getTitle());
holder2.textView4.setText(wlist.get(position).getAuthor_name());
Glide.with(context).load(wlist.get(position).getThumbnail_pic_s02()).into(holder2.imageView1);
break;
case 2:
ViewHolder3 holder3;
if(convertView==null){
convertView=View.inflate(context,R.layout.listview3,null);
holder3=new ViewHolder3();
holder3.imageView2=convertView.findViewById(R.id.mimage_02);
convertView.setTag(holder3);
}else{
holder3=(ViewHolder3) convertView.getTag();
}
Glide.with(context).load(wlist.get(position).getThumbnail_pic_s02()).into(holder3.imageView2);
break;
}
return convertView;
}
class ViewHolder1{
private TextView textView1,textView2;
}
class ViewHolder2{
private TextView textView3,textView4;
private ImageView imageView1;
}
class ViewHolder3{
private ImageView imageView2;
}
}
MyTabFragment:
public class MyTabFragment extends FragmentPagerAdapter {
private List<Fragment>fflist;
private List<String>tabs;
public MyTabFragment(FragmentManager fm, List<Fragment> fflist, List<String> tabs) {
super(fm);
this.fflist = fflist;
this.tabs = tabs;
}
@Override
public Fragment getItem(int i) {
return fflist.get(i);
}
@Override
public int getCount() {
return fflist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabs.get(position);
}
}
MyYinDaoAdapter:
public class MyYinDaoAdapter extends PagerAdapter {
private List<Integer>plist;
private Context context;
public MyYinDaoAdapter(List<Integer> plist, Context context) {
this.plist = plist;
this.context = context;
}
@Override
public int getCount() {
return plist.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view==o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
imageView.setImageResource(plist.get(position));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView(null);
}
}
频道管理代码:
public class ChannelActivity extends BaseActivity{
private ArrayList<String>tops=new ArrayList<>();
private ArrayList<String>downs=new ArrayList<>();
private GridView gridView_top;
private GridView gridView_bottom;
private MyGridAdapter tAdapter;
private MyGridAdapter dAdapter;
private Button btn_fan;
private Button btn_finish;
@Override
public int initLayout() {
return R.layout.activity_channel;
}
@Override
public void initView() {
gridView_top=fvbi(R.id.grid_top);
gridView_bottom=fvbi(R.id.grid_bottom);
btn_fan=fvbi(R.id.btn_fan);
btn_finish=fvbi(R.id.btn_finish);
}
@Override
public void initData() {
//获取上方的数据
tops=getIntent().getStringArrayListExtra("key");
//获取下方的数据
downs.add("国际");
downs.add("文化");
downs.add("娱乐");
downs.add("体育");
//移除重复的数据
downs.removeAll(tops);
tAdapter = new MyGridAdapter(tops, ChannelActivity.this);
dAdapter = new MyGridAdapter(downs, ChannelActivity.this);
gridView_top.setAdapter(tAdapter);
gridView_bottom.setAdapter(dAdapter);
}
@Override
public void initLinner() {
gridView_top.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
downs.add(tops.get(position));
tops.remove(position);
tAdapter.notifyDataSetChanged();
dAdapter.notifyDataSetChanged();
}
});
gridView_bottom.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
tops.add(downs.get(position));
downs.remove(position);
tAdapter.notifyDataSetChanged();
dAdapter.notifyDataSetChanged();
}
});
btn_fan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
btn_finish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putStringArrayListExtra("key",tops);
setResult(200,intent);
finish();
}
});
}
}
频道管理布局:
activity_channel:
<?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:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal"
>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="返回"
android:id="@+id/btn_fan"
/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="完成"
android:id="@+id/btn_finish"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:orientation="vertical"
>
<GridView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:id="@+id/grid_top"
></GridView>
<GridView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:id="@+id/grid_bottom"
></GridView>
</LinearLayout>
</LinearLayout>
ShouActivity:首页
public class ShowActivity extends BaseActivity{
private ViewPager viewPager;
private TabLayout tabLayout;
private ImageView imageView;
private DrawerLayout drawerLayout;
private List<Fragment>flist=new ArrayList<>();
private String[] titles={"第一页面","第二页面","第三页面"};
private String pickUrl="http://c.hiphotos.baidu.com/image/pic/item/622762d0f703918f4a4f3ef65f3d269759eec474.jpg";
@Override
public int initLayout() {
return R.layout.activity_show;
}
@Override
public void initView() {
viewPager=fvbi(R.id.view_pager);
tabLayout=fvbi(R.id.tab_Layout);
imageView=fvbi(R.id.image_not);
drawerLayout=fvbi(R.id.drawerLayout);
}
@Override
public void initData() {
Glide.with(ShowActivity.this).load(pickUrl).into(imageView);
flist.add(new FirstFragment());
flist.add(new SecondFragment());
flist.add(new ThirdFragment());
MyFragmentAdapter myFragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(), flist, titles);
viewPager.setAdapter(myFragmentAdapter);
viewPager.setOffscreenPageLimit(flist.size());
tabLayout.setupWithViewPager(viewPager);
}
@Override
public void initLinner() {
}
}
MainActivity:
public class MainActivity extends BaseActivity {
private ViewPager shouViewPager;
private RadioGroup showRadioGroup;
private Button btn_tiyan;
private List<Integer>plist;
private SharedPreferences sp;
@Override
public int initLayout() {
return R.layout.activity_main;
}
@Override
public void initView() {
shouViewPager=fvbi(R.id.view_sPager);
showRadioGroup=fvbi(R.id.radio_sGroup);
btn_tiyan=fvbi(R.id.btn_tiyan);
}
@Override
public void initData() {
plist=new ArrayList<>();
plist.add(R.drawable.f);
plist.add(R.drawable.h);
plist.add(R.drawable.w);
MyYinDaoAdapter myYinDaoAdapter = new MyYinDaoAdapter(plist, MainActivity.this);
shouViewPager.setAdapter(myYinDaoAdapter);
//获取sp对象
sp = getSharedPreferences("config", MODE_PRIVATE);
boolean flag = sp.getBoolean("flag", false);
if(flag){
Intent intent = new Intent(MainActivity.this, ShowActivity.class);
startActivity(intent);
finish();
}
shouViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
showRadioGroup.check(showRadioGroup.getChildAt(i).getId());
if(plist.size()-1==i){
btn_tiyan.setVisibility(View.VISIBLE);
}else {
btn_tiyan.setVisibility(View.INVISIBLE);
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}
@Override
public void initLinner() {
btn_tiyan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor edit = sp.edit();
edit.putBoolean("flag",true);
edit.commit();
Intent intent = new Intent(MainActivity.this, ShowActivity.class);
startActivity(intent);
finish();
}
});
}
}
抽基类:
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(initLayout());
//加载控件
initView();
//加载数据
initData();
//监听
initLinner();
}
public abstract int initLayout();
public abstract void initView();
public abstract void initData();
public abstract void initLinner();
public <T extends View> T fvbi(int resId){
return (T )findViewById(resId);
}
}
权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.zenghe02">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<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=".activity.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.ShowActivity"/>
<activity android:name=".activity.ChannelActivity"/>
</application>
</manifest>