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); } }}
阅读全文
0 0
- TabLayout与频道拖拽联合+listview多条目+listview点击跳转
- 点击listview条目跳转
- listView点击条目跳转并带参数
- 点击listview条目跳转到另一个Activity
- Android_ Listview点击条目跳转到相关内容
- ListView点击子条目跳转到详情
- ListView 条目显示点击
- listview多条目 GridView TabLayout pullToRefresh radioGroup +fragment
- listView条目不能点击问题
- 练习题 用到了 listview多条目 GridView+listview 侧滑 ,TabLayout .PullToRefreshListView PullToRefreshScrollV
- DrawerLayout与listView结合(drawerlayout条目点击显示)
- android listview点击跳转
- ListView多条目布局与ListView普通布局适配器不同之处
- ListView多条目展示
- ListView多条目显示
- ListView多条目展示
- listview多条目展示
- ListView多条目加载
- 简述ElasticSearch里面复杂关系数据的存储方式
- 三分模板
- 基于linux下的线程池复制多级目录及文件
- maven理解
- 免费馅饼题解
- TabLayout与频道拖拽联合+listview多条目+listview点击跳转
- ZOJ 1107 FatMouse and Cheese(记忆化搜索)
- C++读写二进制格式文件
- construct 2 插件初识(2)
- 签到,补签,求最长连续签到多少天
- Python:numpy中array的用处
- 一个简单的密码程序
- 卡特兰数的应用
- 编码