简单好用的数据库存

数据库+listview(主要用于理清思路)

Main

public class MainActivity extends AppCompatActivity {
    NewAdapter adapter;
    NewResponse json;
    ArrayList<ChannelBean> list;
    Dao dao;
    ListView lv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lv = findViewById(R.id.listview);

        adapter = new NewAdapter(this);
        lv.setAdapter(adapter);

        initData();
    }

    String url = "http://www.xieast.com/api/news/news.php?page=1";
    private void initData() {
        dao = new Dao(this);

        if(!HttpUtil.hasNetwork(this)) {
            ArrayList<NewItemBean> list = dao.query();
            adapter.setData(list);
            return;
        }

        new AsyncTask<String,String ,ArrayList<NewItemBean>>(){
            @Override
            protected ArrayList<NewItemBean> doInBackground(String... strings) {
                HttpUtil util = new HttpUtil(url);
                String work = util.requestUtil();
                Gson gson = new Gson();
                json = gson.fromJson(work, NewResponse.class);
                return json.getData();
            }
            @Override
            protected void onPostExecute(ArrayList<NewItemBean> newItemBeans) {
                super.onPostExecute(newItemBeans);

                adapter.setData(newItemBeans);
                for(int i = 0 ; i< newItemBeans.size();i++){
                    dao.add(newItemBeans.get(i).getTitle());
                }
                ArrayList<NewItemBean> query = dao.query();
                String title = query.get(0).getTitle();
                Toast.makeText(MainActivity.this,title,Toast.LENGTH_LONG).show();
            }
        }.execute(url);
    }


}

dao

public class Dao {
    SQLiteDatabase database;
    public Dao(Context context){
        MHelper mHelper = new MHelper(context);
        database = mHelper.getWritableDatabase();
    }

    public ArrayList<NewItemBean> query(){
        Cursor cursor = database.rawQuery("select * from user", null);
        ArrayList<NewItemBean> list = new ArrayList<>();
        while (cursor.moveToNext()){
            String title = cursor.getString(cursor.getColumnIndex("title"));
            NewItemBean bean = new NewItemBean();
            bean.setTitle(title);
            list.add(bean);
        }
        return list;
    }
    public void add(String title){
        database.execSQL("insert into user(title) values(?)",new Object[]{title});
    }
    public void update(String title){
  database.execSQL("update employ set ?=? where (title=?)",new String[]{title});
 }
}

public MHelper(Context context) {
    super(context, "user.db", null, 1);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
    sqLiteDatabase.execSQL("create table user(id integer primary key autoincrement," +
            "title text," +
            "date text," +
            "url text)");
}

封装(请求网络+网络判断)

class HttpUtil {
    private String urll;

    public HttpUtil(String url) {
        this.urll = url;

    }
    public String requestUtil() {
        String msg =null;
        try {
            URL url= new URL(urll);
            try {
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);
                int responseCode = urlConnection.getResponseCode();
                if(responseCode==200){
                     msg = String2string(urlConnection.getInputStream());
                }

            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        return msg;
    }

    private String String2string(InputStream inputStream) {
        StringBuffer buffer = new StringBuffer();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        try {
            for (String temp=reader.readLine();temp!=null;temp=reader.readLine()) {
                 buffer.append(temp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return buffer.toString();
    }

    public static boolean hasNetwork(Context context) {
        ConnectivityManager systemService =
                (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = systemService.getActiveNetworkInfo();
        return info != null && info.isAvailable();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值