您的位置:首页 > 移动开发 > Android开发

今日头条的频道管理与头部的tablayout的相结合的详解

2017-09-19 19:27 429 查看
//创建数据库创建表DB里面创建
db.execSQL("create table pindao (type varchar(20),title varchar(20))");

//添加数据
List<String> listTitle = Arrays.asList("推荐", "热点", "本地", "视频", "社会", "娱乐", "科技", "汽车", "体育", "财经", "军事",
"国际", "段子", "趣图", "健康", "美女");

for (int i = 0; i < listTitle.size() ; i++) {
if(i> listTitle.size()/2 ){
db.execSQL("insert into pindao (type,title) values (?,?)",new Object[]{"其他",listTitle.get(i)});
}else{
db.execSQL("insert into pindao (type,title) values (?,?)",new Object[]{"我的",listTitle.get(i)});
}

}

//数据库进行增删改查dao类里面

//增加
public void add(String type,String title){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("insert into pindao (type,title) values (?,?)",new Object[]{type,title});
}
//删除
public void delete(String title){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("delete from  pindao  where title =? ",new Object[]{title});
}
//按照类型进行查询
 public List<Pindao> select(String type){
List<Pindao> list = new ArrayList<>();
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.query("pindao",null,"type=?",new String[]{type},null,null,null);
while (cursor.moveToNext()){
String type1 = cursor.getString(cursor.getColumnIndex("type"));
String title = cursor.getString(cursor.getColumnIndex("title"));
list.add(new Pindao(type1,title) );
}
return  list;
}
//查询所有
 public List<Pindao> select1(){
List<Pindao> list = new ArrayList<>();
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select *  from pindao", null);
while (cursor.moveToNext()){
String type2 = cursor.getString(cursor.getColumnIndex("type"));
String title = cursor.getString(cursor.getColumnIndex("title"));
list.add(new Pindao(type2,title) );
}
return  list;
}

//在主类中进行调用因为draggrid自带动画,所以加上依赖
compile 'com.github.andyoom:draggrid:v1.0.1'

//如果想长按拖动平移就在manifiest.xml里面进行添加权限
<uses-permission android:name="android.permission.VIBRATE"/>


在主类中定义一个Button按钮,进行点击事件

private List<ChannelBean> list;
private String jsonStr;

public void bt(View view){
if (list==null){//判断集合中是否已有数据,没有则创建
list=new ArrayList<>();
//第一个是显示的条目,第二个参数是否显示
List<Pindao> list_my = dataDao.select("我的");
List<Pindao> list_more = dataDao.select("其他");

for (int i = 0; i <list_my.size() ; i++) {
list.add(new ChannelBean(list_my.get(i).getTitle(), true));
}
for (int i = 0; i <list_more.size() ; i++) {
list.add(new ChannelBean(list_more.get(i).getTitle(),false));
}
ChannelActivity.startChannelActivity(HomePagerActivity.this,list);
}else if (jsonStr!=null){//当判断保存的字符串不为空的时候,直接加载已经有了的字符串
ChannelActivity.startChannelActivity(HomePagerActivity.this,jsonStr);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==ChannelActivity.REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE) {

jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
System.out.println("---"+jsonStr);
Gson gson = new Gson();
List<TypeBean> ty =  gson.fromJson(jsonStr, new TypeToken<List<TypeBean>>() {}.getType());
System.out.println("------"+ty.size());
for (int i = 0; i <ty.size() ; i++) {
if(ty.get(i).isIsSelect() == true){
System.out.println("----"+ty.get(i).getName());
dataDao.delete(ty.get(i).getName());
dataDao.add("我的",ty.get(i).getName());
}else{
System.out.println("----"+ty.get(i).getName());
dataDao.delete(ty.get(i).getName());
dataDao.add("其他",ty.get(i).getName());
}
}
select();
}
private  void select(){
list1 = new ArrayList<>();
List<Pindao> select = dataDao.select("我的");
for (int i = 0; i < select.size(); i++) {
String title = select.get(i).getTitle();
for (int j = 0; j <listTitle.size() ; j++) {
if(title.equals(listTitle.get(j))){
list1.add(new TitleBean(listPath.get(j),listTitle.get(j)));
}
}
}
//进行适配器
myFragmentAdapter = new MyFragmentAdapter(fm, list1);
vp.setAdapter(myFragmentAdapter);
}

TypeBean类
public class TypeBean {

private String name;
private boolean isSelect;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public boolean isIsSelect() {
return isSelect;
}

public void setIsSelect(boolean isSelect) {
this.isSelect = isSelect;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息