Android studio结合数据库简单的进行展示删除

Android studio结合数据库简单的进行展示删除_第1张图片

xml里面的代码在这里插入代码片
main里面的代码

适配器中的代码`在这里插入代码片`

主页面中的代码

package com.example.demo;

import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;

import com.example.adapter.MyAdapter;
import com.example.bean.MyData;
import com.example.dao.MyDao;
import com.example.utils.MyUtils;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button get_Btn;
    private ListView listView;
    //将网址写入
    private String mUrl = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    private List lists = new ArrayList<>();
    private MyAdapter adapter;
    private MyDao dao;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dao = new MyDao(this);
        initView();
        adapter = new MyAdapter(this, lists);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View view, final int position, long id) {

                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("删除");
                builder.setMessage("确定删除吗?");
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String title = adapter.getDatas().get(position).getNews_title();
                        int dele = dao.dele(title);
                        //进行判断删除
                        if (dele>0){
                            adapter.setDatas(dao.show());
                        }
                    }
                });
                 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         dialog.dismiss();
                     }
                 });
                AlertDialog dialog = builder.create();
                dialog.show();
            }
        });



    }

    private void initView() {
        get_Btn = (Button) findViewById(R.id.get_Btn);
        listView = (ListView) findViewById(R.id.listView);

        get_Btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.get_Btn:
                List dataBeanList = dao.show();
                //进行判断
                if (dataBeanList.size() > 0) {
                    adapter.setDatas(dataBeanList);
                } else {
                    new MyTask().execute(mUrl);
                }
                break;
        }
    }

    class MyTask extends AsyncTask> {
            @Override
        protected List doInBackground(String... strings) {
            //创建uri
            String json = MyUtils.getMyStrig(strings[0]);
            Gson gson = new Gson();
            MyData myData = gson.fromJson(json, MyData.class);
            return myData.getData();
        }

        @Override
        protected void onPostExecute(List dataBeans) {
            super.onPostExecute(dataBeans);
            adapter.setDatas(dataBeans);
            dao.add(dataBeans);
        }
    }
}

封装的适配器

package com.example.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.bean.MyData;
import com.example.zhoukaolianxi1.R;

import java.util.List;

public class MyAdapter extends BaseAdapter {
    private Context mContext;
    private List datas;

    public MyAdapter(Context mContext, List datas) {
        this.mContext = mContext;
        this.datas = datas;
    }

    public void setDatas(List datas) {
        this.datas = datas;
        //刷新适配器
        notifyDataSetChanged();
    }

    public List getDatas() {
        return datas;
    }

    @Override
    public int getCount() {
        return datas.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //声明一个holder类
        ViewHolder holder = null;
        //进行判断
        if (convertView == null){
            holder = new ViewHolder();
            convertView = View.inflate(mContext , R.layout.item,null);
            holder.tv_list = convertView.findViewById(R.id.list_tv);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }
        holder.tv_list.setText(datas.get(position).getNews_title());
        return convertView;
    }

    //holder类
    class ViewHolder {
        TextView tv_list;
    }
}

这里是我的bean包

package com.example.bean;

import java.util.List;

public class MyData {

   

    private int status;
    private String info;
    private List data;

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public List getData() {
        return data;
    }

    public void setData(List data) {
        this.data = data;
    }

    public static class DataBean {
      
        private String news_id;
        private String news_title;
        private String news_summary;
        private String pic_url;

        public String getNews_id() {
            return news_id;
        }

        public void setNews_id(String news_id) {
            this.news_id = news_id;
        }

        public String getNews_title() {
            return news_title;
        }

        public void setNews_title(String news_title) {
            this.news_title = news_title;
        }

        public String getNews_summary() {
            return news_summary;
        }

        public void setNews_summary(String news_summary) {
            this.news_summary = news_summary;
        }

        public String getPic_url() {
            return pic_url;
        }

        public void setPic_url(String pic_url) {
            this.pic_url = pic_url;
        }
    }
}

helper类

package com.example.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MyHelper extends SQLiteOpenHelper {
    public MyHelper(Context context) {
        super(context, "mydb", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table news (title text)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

dao层

package com.example.dao;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.example.bean.MyData;

import java.util.ArrayList;
import java.util.List;

public class MyDao {
    private SQLiteDatabase database;

    public MyDao(Context mContext) {
        MyHelper helper = new MyHelper(mContext);
        database = helper.getWritableDatabase();
    }

    public List show() {
        //创建一个集合
        List datas = new ArrayList();
        Cursor qu = database.query("news", null, null, null, null, null, null,null);
        while(qu.moveToNext()){
            String title = qu.getString(qu.getColumnIndex("title"));
            //创建一个bean包类
            MyData.DataBean dataBean = new MyData.DataBean();
            dataBean.setNews_title(title);
            datas.add(dataBean);
        }
        return datas;
    }
    public void add(Listdatas){
        //循环添加
        for (int i = 0; i

我自己将解析数据的方法抽出来单独封装了一个工具类

package com.example.utils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MyUtils {
    public static String getMyStrig(String mUrl) {
        try {
            URL url = new URL(mUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            InputStream stream = connection.getInputStream();
            String sb = getStr(stream);
            return sb;

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String getStr(InputStream stream) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
        StringBuffer sb = new StringBuffer();
        String con = "";
        while ((con = reader.readLine()) != null) {
            sb.append(con);
        }
        reader.close();
        return sb.toString();

    }
}

以上就是我这个的全部代码了.
如果有更简便易懂的 请私信我.因为总觉得我这个还是有点麻烦写起来.

你可能感兴趣的:(Android,Studio,列表展示)