DreenDao数据库

//activity

package com.example.shuai.android_high_retrofit;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.Toast;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import www.DaoMaster;
import www.DaoSession;
import www.Ku2Dao;

public class MainActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private ImageView imageView;
    public static RecyclerView recycler;
    public static List<Bean.ResultBean.DataBean>mlist=new ArrayList<>();
    public static MyRecyclerview_Adapter adapter;
    public static ArrayList<Ku2>  kuList=new ArrayList<>();
    public static Ku2Dao kuDao;
    public static int index;
    public static PopupWindow popupWindow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DaoSession daoSession = DaoMaster.newDevSession(MainActivity.this, Ku2Dao.TABLENAME);
        kuDao = daoSession.getKu2Dao();
        initView();
        initData();
        initData2();

    }

    private void initData2() {
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, AddActivity.class);
                startActivity(intent);
            }
        });
        adapter.setShuai(new MyRecyclerview_Adapter.Shuai() {
            @Override
            public void OnShuai(View view, final int position) {
                View pop = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_poupwindow, null);
                Button updatee = pop.findViewById(R.id.updatee);
                Button deletee = pop.findViewById(R.id.deletee);
                popupWindow = new PopupWindow(pop, 300, 300);
                popupWindow.setOutsideTouchable(true);
                popupWindow.setBackgroundDrawable(new ColorDrawable(Color.BLUE));
                popupWindow.showAtLocation(pop, Gravity.CENTER,0,0);


                updatee.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Ku2 ku2 = kuList.get(position);
                        index=position;
                        Intent intent = new Intent(MainActivity.this, UpdateActivity.class);
                        startActivity(intent);
                        popupWindow.dismiss();
                    }
                });
                deletee.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //获得数据库集合对象的下标
                        Ku2 ku2 = kuList.get(position);
                        //数据库通过对象删除 点击的数据
                        kuDao.delete(ku2);
                        //数据库集合删除该下标
                        kuList.remove(position);
                        //关闭popwindow
                        popupWindow.dismiss();
                        //刷新
                        adapter.notifyDataSetChanged();
                    }
                });
            }
        });
    }

    private void initData() {
//        http://v.juhe.cn/toutiao/index?type=shehui&key=1774fd7009ac4d6d2b0d14a349b0daae
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://v.juhe.cn")
                .addConverterFactory(GsonConverterFactory.create(new Gson()))
                .build();
        final APISeverice apiSeverice = retrofit.create(APISeverice.class);
        Map<String, String> map = new HashMap<>();
        map.put("type","top");
        map.put("key","1774fd7009ac4d6d2b0d14a349b0daae");
        Call<Bean> call = apiSeverice.getNewsInfo(map);
        call.enqueue(new Callback<Bean>() {
            @Override
            public void onResponse(Call<Bean> call, Response<Bean> response) {
                Bean body = response.body();
                List<Bean.ResultBean.DataBean> data = body.getResult().getData();
                mlist.addAll(data);
                List<Ku2> kus = kuDao.loadAll();
                if (kus.size()<=0){
                    for (int i=0;i<data.size();i++){
                        Bean.ResultBean.DataBean dataBean = data.get(i);
                        Ku2 ku = new Ku2(null, dataBean.getAuthor_name(), dataBean.getThumbnail_pic_s());
                        Log.e("TAG",ku+"");
        //                添加到数据库
                        kuDao.insert(ku);

                    }
                }
                //查询数据库 得到数据库集合对象
                List<Ku2> ku2s = kuDao.loadAll();
                //for循环集合对象长度
                for (int i = 0; i <ku2s.size() ; i++) {
                    //得到数据库集合对象的数据
                    Ku2 ku2 = ku2s.get(i);
                    //集合添加
                    kuList.add(ku2);
                }
                adapter.notifyDataSetChanged();
            }

            @Override
            public void onFailure(Call<Bean> call, Throwable t) {
                Log.e("TAG","请求失败");
            }
        });

    }

    private void initView() {
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        imageView = (ImageView) findViewById(R.id.imageView);
        recycler = (RecyclerView) findViewById(R.id.recycler);
        recycler.setLayoutManager(new LinearLayoutManager(this));
//        适配器
        adapter = new MyRecyclerview_Adapter(this, kuList);
        recycler.setAdapter(adapter);
    }
}

//  retrofite接口

public interface APISeverice {
    //http://  v.juhe.cn/   toutiao/index   ?type=top&key=097060266650f67b2cebd2a06aded587
    //协议      ip地址+端口号  项目路径       请求参数
    @GET("toutiao/index")
    Call<Bean> getNewsInfo(@Query("type")String type, @Query("key")String key);
    @GET("toutiao/index")
    Call<Bean> getNewsInfo(@QueryMap Map<String,String> map);
}
//静态加载
List<Bean.ResultBean.DataBean> mlist = MainActivity.mlist;
final MyRecyclerview_Adapter adapter = MainActivity.adapter;
List<Ku2> kuList = MainActivity.kuList;
int index = MainActivity.index;
Ku2Dao kuDao = MainActivity.kuDao;
Ku2 ku2 = new Ku2((long) index + 1, name2String, img2String);
kuDao.update(ku2);
kuList.set(index,ku2);
finish();
adapter.notifyDataSetChanged();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值