实现频道管理

下面我们来写一下频道管理的代码,频道管理其实挺简单的,第一步先实现:
1. 在app的gradle里面
	com.github.andyoom:draggrid:v1.0.1
2.在项目的build.gradle中添加
	maven {url "https://jitpack.io"}
接下来我们就要在MainActivity中实现频道管理的代码了:
    private List<Fragment> fragments;
    private List<NewsBean> listbean;
    private NewsBean bean;
    private List<ChannelBean> channelActivityList;
    private List<ChannelBean> channelist;


    private MyDao dao;
    private NewsBean newsBean;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        dotImage= (ImageView) findViewById(R.id.dotImage);
        initView();
        initData();
    }
    /**
     * 点击
     */
    private void initView() {
        dotImage.setOnClickListener(this);
    }
 /**
     * 文字
     */
    private void initData() {
        dao=new MyDao(MainActivity.this);
        fragments=new ArrayList<>();
        listbean=new ArrayList<>();
        newsBean = new NewsBean();
        listbean.add(new NewsBean("1","推荐",true));
        listbean.add(new NewsBean("2","娱乐",true));
        listbean.add(new NewsBean("3","社会",true));
        listbean.add(new NewsBean("4","体育",true));
        listbean.add(new NewsBean("3","财经",true));
        listbean.add(new NewsBean("6","科技",true));
        listbean.add(new NewsBean("7","军事",true));
        listbean.add(new NewsBean("8","医疗",true));

        fragments.add(new MyFragment());
        fragments.add(new FragmentYuLe());
        fragments.add(new FragmentSheHui());
        fragments.add(new FragmentTiYu());
        fragments.add(new FragmentCaiji());
        fragments.add(new FragmentKeJi());
        fragments.add(new FragmentJunshi());
        fragments.add(new FragmentYiLiao());
        tabhost.display(listbean,fragments);
    }
/**
     * 点击事件
     * @param view
     */
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.dotImage:
                dotImage_pindao();
                break;
        }
    }
/**
     * 点击频道====>存到数据库
     */
    private void dotImage_pindao() {
        channelist=new ArrayList<>();
        String result=dao.select("pindao");
        System.out.println("====结果"+result);
        if(result==null){
            //第一次进入频道
            for (int i = 0; i <listbean.size(); i++) {
                NewsBean n=listbean.get(i);
                ChannelBean channel=new ChannelBean(n.name,n.state);
                channelist.add(channel);
            }
        }else{
            //第二次进入
            try {
                JSONArray array=new JSONArray(result);
                for (int i = 0; i <array.length(); i++) {
                    JSONObject object= (JSONObject) array.get(i);
                    String name=object.getString("name");
                    boolean state=object.getBoolean("isSelect");
                    ChannelBean beans=new ChannelBean(name,state);
                    channelist.add(beans);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        ChannelActivity.startChannelActivity(MainActivity.this, channelist);
    }
    //回调的方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断回传码是否相同
        if(resultCode==101){
            Log.i("xxx","回传!");
            String reqult_key=data.getStringExtra("json");
            dao.delect("pindao");//清楚数据
            dao.add("pindao",reqult_key);//添加到数据
            System.out.println("====保存"+reqult_key);
            listbean.clear();
            ArrayList<Fragment> list=new ArrayList<>();
            try {
                JSONArray arr=new JSONArray(reqult_key);
                for (int i = 0; i < arr.length(); i++) {
                    JSONObject obj= (JSONObject) arr.get(i);
                    String name=obj.getString("name");
                    boolean state=obj.getBoolean("isSelect");
                    if(state){
                        list.add(fragments.get(i));
                        NewsBean newsBean=new NewsBean(name,state);//state是bean类中的一个类型:public boolean state;
                        listbean.add(newsBean);
                    }
                }
                tabhost.remove();
                tabhost.display(listbean,list);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
我们在写一个数据库将我们写的数据存入到数据库中我们的频道管理就差不多完成了。我们来创建数据库:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

    public MySQLiteOpenHelper(Context context) {
        super(context, "pindao.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("create table news(type varchar,json text)");
    }
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}
再创建一个Dao包:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class MyDao {
    private Context context;
    private MySQLiteOpenHelper helper=null;
    public MyDao(Context context){
        super();
        this.context=context;
        helper=new MySQLiteOpenHelper(context);
    }

    /**
     * 添加数据
     * @param type
     * @param json
     */
    public void add(String type,String json){
        SQLiteDatabase db=helper.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put("type",type);
        values.put("json",json);
        db.insert("news",null,values);
        db.close();
        System.out.println("保存成功");
    }
    /**
     * 查询数据
     */
    public String select(String type){
        SQLiteDatabase db=helper.getWritableDatabase();
        Cursor cursor=db.query("news",null,"type=?",new String[]{type},null,null,null);
        while (cursor.moveToNext()){
            String json=cursor.getString(cursor.getColumnIndex("json"));
            return json;
        }
        return null;
    }
    /**
     * 删除数据
     */
    public void delect(String type){
        SQLiteDatabase db=helper.getWritableDatabase();
        db.delete("news","type=?",new String[]{type});
        String select=select(type);
        if(select==null){
            System.out.print("==删除查询为空!");
        }else{
            System.out.print("==删除后的查询未成功!");
        }
    }
}
这就好了,就可以实现频道管理并存到数据库中的频道管理!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值