MainActivity

来源:互联网 发布:淘宝男士夏装 编辑:程序博客网 时间:2024/05/31 18:38
package com.bwie.topnewsnormal;import android.content.Intent;import android.support.design.widget.TabLayout;import android.support.v4.view.ViewPager;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.view.View;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;import com.andy.library.ChannelActivity;import com.andy.library.ChannelBean;import com.bwie.topnewsnormal.adapter.MyPagerAdapter;import com.bwie.topnewsnormal.bean.ChannelList;import com.bwie.topnewsnormal.database.NewsDao;import com.bwie.topnewsnormal.utils.ThemeUtils;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;import com.umeng.socialize.UMAuthListener;import com.umeng.socialize.UMShareAPI;import com.umeng.socialize.bean.SHARE_MEDIA;import java.util.ArrayList;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    //AppCompatActivity    private TabLayout tablayout;    private ViewPager vp;    private ImageView ivIcon;    private SlidingMenu slidingMenu;    private ImageView ivSetting;    private ImageView ivQQ;    private ImageView night_mode;    private ImageView iv_download;    private ImageView iv_addChannel;    private LinearLayout more_loginmode;    private ArrayList<ChannelBean> allChannelList;    private ArrayList<ChannelBean> userChannelList;    private NewsDao newsDao;    private MyPagerAdapter myPagerAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        ThemeUtils.OnActivityCreate(this);        setContentView(R.layout.activity_main);        //得到操作数据库的类        newsDao = new NewsDao(this);        //找控件        tablayout = (TabLayout) findViewById(R.id.tablayout);        vp = (ViewPager) findViewById(R.id.vp);        ivIcon = (ImageView) findViewById(R.id.ivIcon);        iv_addChannel = (ImageView) findViewById(R.id.iv_addChannel);        //添加频道的imageview设置监听        iv_addChannel.setOnClickListener(this);        //给侧拉栏图标设置监听        ivIcon.setOnClickListener(this);        //初始化数据  设置viewpager和频道        initData();        //关联viewpager之前init频道数据(设置完适配器  再关联tablayout        tablayout.setupWithViewPager(vp);        //初始化侧拉栏 进行一些设置        initLeftSlidingMenu();    }    public void initLeftSlidingMenu() {        //得到一个侧拉菜单        slidingMenu = new SlidingMenu(this);        //显示位置        slidingMenu.setMode(SlidingMenu.LEFT);        //设置触摸的区域        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);        //设置距离右边        slidingMenu.setBehindOffset(200);        //范围是 0 - 1f ,当设置成1的时候菜单栏有明显的褪色效果        // slidingMenu.setFadeDegree(1);        //activity关联起来        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);        //设置view        slidingMenu.setMenu(R.layout.slidingmenu_left_layout);        //可以直接找侧拉栏中的控件        ivQQ = (ImageView) findViewById(R.id.ivQQ);        ivSetting = (ImageView) findViewById(R.id.ivSetting);        night_mode = (ImageView) findViewById(R.id.night_mode);        iv_download = (ImageView) findViewById(R.id.iv_download);        more_loginmode = (LinearLayout) findViewById(R.id.more_loginmode);        more_loginmode.setOnClickListener(this);        ivQQ.setOnClickListener(this);        night_mode.setOnClickListener(this);        ivSetting.setOnClickListener(this);        iv_download.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.ivIcon:                slidingMenu.toggle();                break;            case R.id.ivQQ:                UMShareAPI.get(this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener);                break;            case R.id.night_mode:                ThemeUtils.onClick(this,allChannelList);                break;            case R.id.ivSetting:                startActivity(new Intent(MainActivity.this, SettingActivity.class));                break;            case R.id.iv_download:                startActivity(new Intent(MainActivity.this, DownLoadActivity.class));                break;            case R.id.more_loginmode:                startActivity(new Intent(MainActivity.this, LoginActivity.class));                break;            case R.id.iv_addChannel:                //传过去可选择的频道                ChannelActivity channelActivity = new ChannelActivity();                channelActivity.startChannelActivity(this, allChannelList);                break;        }    }    UMAuthListener authListener = new UMAuthListener() {        /**         * @desc 授权开始的回调         * @param platform 平台名称         */        @Override        public void onStart(SHARE_MEDIA platform) {        }        /**         * @desc 授权成功的回调         * @param platform 平台名称         * @param action 行为序号,开发者用不上         * @param data 用户资料返回         */        @Override        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {            Toast.makeText(MainActivity.this, "QQ登录成功", Toast.LENGTH_LONG).show();            String name = data.get("name");            String gender = data.get("gender");            String photoUrl = data.get("iconurl");            DisplayImageOptions builder = new DisplayImageOptions.Builder()                    .displayer(new RoundedBitmapDisplayer(90))                    .build();            ImageLoader.getInstance().displayImage(photoUrl, ivIcon, builder);        }        /**         * @desc 授权失败的回调         * @param platform 平台名称         * @param action 行为序号,开发者用不上         * @param t 错误原因         */        @Override        public void onError(SHARE_MEDIA platform, int action, Throwable t) {            if (UMShareAPI.get(MainActivity.this).isInstall(MainActivity.this, SHARE_MEDIA.QQ)) {                Toast.makeText(MainActivity.this, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();            } else {                Toast.makeText(MainActivity.this, "没有安装qq" + t.getMessage(), Toast.LENGTH_LONG).show();            }        }        /**         * @desc 授权取消的回调         * @param platform 平台名称         * @param action 行为序号,开发者用不上         */        @Override        public void onCancel(SHARE_MEDIA platform, int action) {            Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();        }    };    private void initData() {        allChannelList = new ArrayList<>();        userChannelList = new ArrayList<>();        List<ChannelBean> allChannels = newsDao.queryAll();        //当第一次进入activity的时候  数据库查询不到内容  就要设置一些默认的频道        if (allChannels == null || allChannels.size() < 1) {            //用户已选择的频道  为了让activity有内容            if (getSharedPreferences("firsttime", MODE_PRIVATE).getBoolean("flag", true)) {                getSharedPreferences("firsttime", MODE_PRIVATE).edit().putBoolean("flag", false);                System.out.println("+++++++++++++++++++走了");                userChannelList.add(new ChannelBean("头条", true));                userChannelList.add(new ChannelBean("新闻", true));                //全部的频道                allChannelList.add(new ChannelBean("头条", true));                allChannelList.add(new ChannelBean("新闻", true));                allChannelList.add(new ChannelBean("财经", false));                allChannelList.add(new ChannelBean("体育", false));                allChannelList.add(new ChannelBean("娱乐", false));                allChannelList.add(new ChannelBean("军事", false));                allChannelList.add(new ChannelBean("教育", false));                allChannelList.add(new ChannelBean("科技", false));                allChannelList.add(new ChannelBean("NBA", false));                allChannelList.add(new ChannelBean("股票", false));                allChannelList.add(new ChannelBean("星座", false));                allChannelList.add(new ChannelBean("女性", false));                allChannelList.add(new ChannelBean("健康", false));                allChannelList.add(new ChannelBean("育儿", false));                newsDao.add(allChannelList);            }        } else {            //如果有内容  直接赋值            allChannelList.addAll(newsDao.queryAll());            userChannelList.addAll(newsDao.queryUser());        }        myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), userChannelList);        vp.setAdapter(myPagerAdapter);    }    @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 json = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);            if (TextUtils.isEmpty(json)) {                return;            }            List<ChannelBean> list = new Gson().fromJson(json, new TypeToken<List<ChannelBean>>() {            }.getType());            if (list == null || list.size() < 1) {                return;            }//          每次返回都清空集合 然后重新赋值            allChannelList.clear();            userChannelList.clear();            for (ChannelBean bean : list) {                if (bean.isSelect()) {                    userChannelList.add(bean);                }                allChannelList.add(bean);            }            myPagerAdapter.notifyDataSetChanged();            //每次设置频道  都要删除表中的内容  并且重新保存            newsDao.delete();            newsDao.add(allChannelList);        }    }}
原创粉丝点击