//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();