TabLayout与频道拖拽联合+listview多条目+listview点击跳转

来源:互联网 发布:ubuntu怎么安装jdk1.8 编辑:程序博客网 时间:2024/06/05 06:35

创建数据库

public class DBUtils {    private final SQLiteDatabase db;    public DBUtils(Context context) {        SQLite sqLite = new SQLite(context);        db = sqLite.getWritableDatabase();    }    //添加方法    public void add(List<ChannelBean> channelBeanList) {        if (channelBeanList == null || channelBeanList.size() < 0) {            return;        }        for (ChannelBean channelBean : channelBeanList) {            ContentValues values = new ContentValues();            values.put("name", channelBean.getName());            values.put("selected", channelBean.isSelect());            db.insert("channels", null, values);        }    }    //查询全部的方法    public List<ChannelBean> chaxun(){        Cursor cursor = db.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> tiaojian(){        Cursor cursor = db.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() {        db.delete("channels", null, null);    }}
MyAdapter类:

public class MyAdapter extends FragmentPagerAdapter {       List<ChannelBean> mChannelBeanList;    public MyAdapter(FragmentManager fm,List<ChannelBean> channelBeanList) {        super(fm);        mChannelBeanList = channelBeanList;    }    @Override    public Fragment getItem(int position) {        MyFragment myFragment = new MyFragment();        Bundle bundle = new Bundle();        bundle.putString("text", mChannelBeanList.get(position).getName());        myFragment.setArguments(bundle);        return myFragment;    }    @Override    public int getCount() {        return mChannelBeanList != null?mChannelBeanList.size():0;    }    @Override    public CharSequence getPageTitle(int position) {        return mChannelBeanList.get(position).getName();    }}
条目点击事件:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {    @Override    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {        Intent intent = new Intent(getActivity(),Second.class);        intent.putExtra("label_text",list.get(position).getLabel_text());        startActivity(intent);    }});
主界面:

public class MainActivity extends AppCompatActivity {    private TabLayout tabLayout;    private ViewPager viewPager;    private TextView pindao;    private List<ChannelBean> qunabu;    private List<ChannelBean> tiaojian;    private DBUtils dbUtils;    private MyAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tabLayout = (TabLayout) findViewById(R.id.tablayout);        viewPager = (ViewPager) findViewById(R.id.viewpager);        tabLayout.setupWithViewPager(viewPager);        viewPager.setOffscreenPageLimit(7);        pindao = (TextView) findViewById(R.id.pindao);        pindao.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                ChannelActivity.startChannelActivity(MainActivity.this, qunabu);            }        });        initData();    }    private void initData() {        qunabu = new ArrayList<>();        tiaojian = new ArrayList<>();        dbUtils = new DBUtils(this);        List<ChannelBean> chaxun = dbUtils.chaxun();        if(chaxun == null || chaxun.size() < 1){            ChannelBean channelBean1 = new ChannelBean("周一", true);            ChannelBean channelBean2 = new ChannelBean("周二", true);            ChannelBean channelBean3 = new ChannelBean("周三", true);            ChannelBean channelBean4 = new ChannelBean("周四", true);            ChannelBean channelBean5 = new ChannelBean("周五", true);            ChannelBean channelBean6 = new ChannelBean("今天", true);            ChannelBean channelBean7 = new ChannelBean("昨天", false);            tiaojian.add(channelBean1);            tiaojian.add(channelBean2);            tiaojian.add(channelBean3);            qunabu.add(channelBean1);            qunabu.add(channelBean2);            qunabu.add(channelBean3);            qunabu.add(channelBean4);            qunabu.add(channelBean5);            qunabu.add(channelBean6);            qunabu.add(channelBean7);            dbUtils.add(qunabu);        }else {            qunabu.addAll(chaxun);            List<ChannelBean> tj = dbUtils.tiaojian();            tiaojian.addAll(tj);        }        adapter = new MyAdapter(getSupportFragmentManager(),tiaojian);        viewPager.setAdapter(adapter);    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.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;            }            qunabu.clear();            tiaojian.clear();            qunabu.addAll(list);            for (ChannelBean channelBean : list) {                boolean select = channelBean.isSelect();                if (select) {                    tiaojian.add(channelBean);                }            }            adapter.notifyDataSetChanged();            dbUtils.clearChannels();            dbUtils.add(qunabu);        }    }}