新闻频道

来源:互联网 发布:如何注册淘宝店铺 编辑:程序博客网 时间:2024/04/28 13:09

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private ViewPager viewpager;    private TabLayout tablayout;    private ImageView img_1;    private SlidingMenu slidingMenu;    private ImageView iv_qq;    private ImageView imageView;    private TextView textView;    private TextView tv_xia;    private Button btn_night;    private ImageView img_phone;    private ImageView img_2;    private SlidingMenu slidingMenu2;    private Button btn_download;    private Button btn_more;    private Button btn_setting;    private Button tab_more_btn;    private ArrayList<ChannelBean> allList;    private ArrayList<ChannelBean> userList;    private MyPageradapter myPageradapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        ThemeUtil.onActivityCreatedSetTheme(this);        setContentView(R.layout.activity_main);//        x.view().inject(this);        viewpager = (ViewPager) findViewById(R.id.viewpager);        tablayout = (TabLayout) findViewById(R.id.tablayout);        tab_more_btn = (Button) findViewById(R.id.tab_more_btn);        tab_more_btn.setOnClickListener(this);        img_1 = (ImageView) findViewById(R.id.img_1);        img_1.setOnClickListener(this);        img_2 = (ImageView) findViewById(R.id.img_2);        img_2.setOnClickListener(this);        initData();        slidingMenu = new SlidingMenu(this);        slidingMenu.setMode(SlidingMenu.LEFT);        //设置触摸屏幕的模式,可选只MARGIN ,CONTENT        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);        //设置SlidingMenu离屏幕的偏移量        slidingMenu.setBehindOffset(300);        // 设置渐入渐出效果的值        slidingMenu.setFadeDegree(1.0f);        //设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1        slidingMenu.setBehindScrollScale(1.0f);        //为侧滑菜单设置布局        slidingMenu.setMenu(R.layout.activity_cela);        //把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT, SLIDING_WINDOW        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);        slidingMenu2 = new SlidingMenu(this);        slidingMenu2.setMode(SlidingMenu.RIGHT);        //设置触摸屏幕的模式,可选只MARGIN ,CONTENT        slidingMenu2.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);        //设置SlidingMenu离屏幕的偏移量        slidingMenu2.setBehindOffset(300);        // 设置渐入渐出效果的值        slidingMenu2.setFadeDegree(1.0f);        //设置SlidingMenu与下方视图的移动的速度比,当为1时同时移动,取值0-1        slidingMenu2.setBehindScrollScale(1.0f);        //为侧滑菜单设置布局        slidingMenu2.setMenu(R.layout.activity_download);        //把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT, SLIDING_WINDOW        slidingMenu2.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);        btn_download = (Button) findViewById(R.id.btn_download);        btn_download.setOnClickListener(this);        btn_more = (Button) findViewById(R.id.btn_more);        btn_more.setOnClickListener(this);        btn_setting = (Button) findViewById(R.id.btn_setting);        btn_setting.setOnClickListener(this);        iv_qq = (ImageView) findViewById(R.id.iv_qq);        iv_qq.setOnClickListener(this);        img_phone = (ImageView) findViewById(R.id.img_phone);        img_phone.setOnClickListener(this);//夜间模式        btn_night = (Button) findViewById(R.id.btn_night);        btn_night.setOnClickListener(this);    }    //第三方登陆的方法    UMAuthListener umAuthListener = new UMAuthListener() {        @Override        public void onStart(SHARE_MEDIA share_media) {        }        @Override        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> data) {            Toast.makeText(getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();            String name = data.get("name");            String gender = data.get("gender");            String PhoneUrl = data.get("iconurl");            x.image().bind(iv_qq, PhoneUrl);        }        @Override        public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {            if (UMShareAPI.get(MainActivity.this).isInstall(MainActivity.this, SHARE_MEDIA.QQ)) {                Toast.makeText(MainActivity.this, "失败:" + throwable.getMessage(), Toast.LENGTH_LONG).show();            } else {                Toast.makeText(MainActivity.this, "没有安装qq" + throwable.getMessage(), Toast.LENGTH_LONG).show();            }        }        @Override        public void onCancel(SHARE_MEDIA share_media, int i) {            Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();        }    };    //点击事件    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.img_1:                slidingMenu.toggle();                break;            case R.id.img_2:                slidingMenu2.toggle();                break;            case R.id.iv_qq:                UMShareAPI.get(this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, umAuthListener);                break;            case R.id.btn_download:                Intent intentlixian = new Intent(MainActivity.this, Line.class);                startActivity(intentlixian);                break;            case R.id.btn_more:                Intent intentmore = new Intent(MainActivity.this, More.class);                startActivity(intentmore);                break;            case R.id.btn_setting:                Intent intentsetting = new Intent(MainActivity.this, OneSetting.class);                startActivity(intentsetting);                break;            case R.id.btn_night:                ThemeUtil.ChangeCurrentTheme(MainActivity.this, allList);                break;            case R.id.img_phone:                Intent intent = new Intent(MainActivity.this, MyMessage.class);                startActivity(intent);                break;            case R.id.tab_more_btn:                ChannelActivity channelActivity = new ChannelActivity();                channelActivity.startChannelActivity(this, allList);                break;        }    }//在onCreate方法里面调用    private void initData() {        allList = new ArrayList<>();        userList = new ArrayList<>();        DbUtils dbUtils = new DbUtils(this);        List<ChannelBean> allChannels = dbUtils.getAllChannels();        if (allChannels == null || allChannels.size() < 1) {            allList.add(new ChannelBean("头条", true));            allList.add(new ChannelBean("新闻", true));            allList.add(new ChannelBean("财经", false));            allList.add(new ChannelBean("体育", false));            allList.add(new ChannelBean("娱乐", false));            allList.add(new ChannelBean("军事", false));            allList.add(new ChannelBean("教育", false));            allList.add(new ChannelBean("科技", false));            allList.add(new ChannelBean("NBA", false));            allList.add(new ChannelBean("股票", false));            allList.add(new ChannelBean("星座", false));            allList.add(new ChannelBean("女性", false));            allList.add(new ChannelBean("健康", false));            allList.add(new ChannelBean("育儿", false));            userList.add(new ChannelBean("头条", true));            userList.add(new ChannelBean("新闻", true));            dbUtils.saveChnnels(allList);        } else {            //如果有数据的话 把查询出来的数据赋值到这两个集合中            allList.addAll(allChannels);            //查询我的频道数据            List<ChannelBean> userChannels = dbUtils.getUserChannels();            userList.addAll(userChannels);        }        //适配器添加        myPageradapter = new MyPageradapter(getSupportFragmentManager(), userList);        viewpager.setAdapter(myPageradapter);        tablayout.setupWithViewPager(viewpager);    }    //Activity传值    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);        if (requestCode == ChannelActivity.REQUEST_CODE && resultCode == ChannelActivity.RESULT_CODE) {            String stringExtra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);            if (TextUtils.isEmpty(stringExtra)) {                return;            }            List<ChannelBean> list = new Gson().fromJson(stringExtra, new TypeToken<List<ChannelBean>>() {            }.getType());            if (list == null || list.size() < 1) {                return;            }            allList.clear();            userList.clear();            //将返回的数据,添加到我们的集合中            allList.addAll(list);            for (ChannelBean channelBean : list) {                boolean select = channelBean.isSelect();                if (select) {                    userList.add(channelBean);                }            }            myPageradapter.notifyDataSetChanged();            //保存数据库            DbUtils dbutils = new DbUtils(this);            dbutils.clearChannels();            dbutils.saveChnnels(allList);        }    }}
创建数据库:
public class MyOpenHelper extends SQLiteOpenHelper  {    public MyOpenHelper(Context context) {        super(context, "news.db", null, 1);    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("create table channels (name varchar(20)  ,selected integer)");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}
数据库增删改查:
public class DbUtils {    MyOpenHelper myOpenHelper;    public DbUtils(Context context) {        this.myOpenHelper = new MyOpenHelper(context);    }    public void saveChnnels(List<ChannelBean> channelBeanList) {        if (channelBeanList == null || channelBeanList.size() < 0) {            return;        }        SQLiteDatabase writableDatabase = myOpenHelper.getWritableDatabase();        for (ChannelBean channelBean : channelBeanList) {            ContentValues values = new ContentValues();            values.put("name", channelBean.getName());            values.put("selected", channelBean.isSelect());            writableDatabase.insert("channels", null, values);        }    }    public List<ChannelBean> getAllChannels() {        SQLiteDatabase readabeleDatabase = myOpenHelper.getReadableDatabase();        Cursor cursor = readabeleDatabase.query("channels", null, null, null, null, null, null);        List<ChannelBean> channelBeanList = new ArrayList<>();        ChannelBean channelBean;        while (cursor.moveToNext()) {            String name = cursor.getString(cursor.getColumnIndex("name"));            int selected = cursor.getInt(cursor.getColumnIndex("selected"));            channelBeanList.add(new ChannelBean(name, selected == 0 ? false : true));        }        cursor.close();        return channelBeanList;    }    public List<ChannelBean> getUserChannels() {        SQLiteDatabase readabeleDatabase = myOpenHelper.getReadableDatabase();        Cursor cursor = readabeleDatabase.query("channels", null, "selected=?", new String[]{"1"}, null, null, null);        List<ChannelBean> channelBeanList = new ArrayList<>();        ChannelBean channelBean;        while (cursor.moveToNext()) {            String name = cursor.getString(cursor.getColumnIndex("name"));            int selected = cursor.getInt(cursor.getColumnIndex("selected"));            channelBeanList.add(new ChannelBean(name, selected == 0 ? false : true));        }        cursor.close();        return channelBeanList;    }    public void clearChannels() {        SQLiteDatabase readabeleDatabase = myOpenHelper.getReadableDatabase();        readabeleDatabase.delete("channels", null, null);    }}

适配器添加:
public class MyPageradapter extends FragmentPagerAdapter {    //创建数组    //创建fragment    private FragmentManager manager;    List<ChannelBean> mChannelBeanList;    public MyPageradapter(FragmentManager fm, ArrayList<ChannelBean> channelBeanList) {        super(fm);        this.manager = fm;        this.mChannelBeanList =channelBeanList ;    }    //适配器的添加    @Override    public Fragment getItem(int position) {        Fragmentone fragmentone = new Fragmentone();        Bundle bundle = new Bundle();//        System.out.println("====================================="+mChannelBeanList.get(position).getName());        bundle.putString("text", mChannelBeanList.get(position).getName());        fragmentone.setArguments(bundle);        return fragmentone;    }    @Override    public int getCount() {        return mChannelBeanList == null ? 0 : mChannelBeanList.size();    }    @Override    public CharSequence getPageTitle(int position) {        return mChannelBeanList.get(position).getName();    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {    }}
Fragment类
@Override    public void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Bundle bundle =getArguments();        text = bundle.getString("text", "");//        System.out.println("-----------------------"+text);    }