当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

12.4 DrySister看妹子应用(第一版)——4.添加数据缓存(加入SQLite)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:28:21

or = db.rawQuery("SELECT * FROM "+TableDefine.TABLE_FULI,null); cursor.moveToFirst(); while (cursor.moveToNext()) { Sister sister = new Sister(); sister.set_id(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_ID))); sister.setCreateAt(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_CREATEAT))); sister.setDesc(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_DESC))); sister.setPublishedAt(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_PUBLISHEDAT))); sister.setSource(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_SOURCE))); sister.setType(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_TYPE))); sister.setUrl(cursor.getString(cursor.getColumnIndex(TableDefine.COLUMN_FULI_URL))); sister.setUsed(cursor.getInt(cursor.getColumnIndex(TableDefine.COLUMN_FULI_USED))); sisters.add(sister); } closeIO(cursor); return sisters; } /** 获得可写数据库的方法 */ private SQLiteDatabase getWritableDB() { return sqlHelper.getWritableDatabase(); } /** 获得可读数据库的方法 */ private SQLiteDatabase getReadableDB() { return sqlHelper.getReadableDatabase(); } /** 关闭cursor和数据库的方法 */ private void closeIO(Cursor cursor) { if(cursor != null) { cursor.close(); } if(db != null) { db.close(); } }}嗯,还是蛮简单的,都是一些SQLite的方法调用而已,接着我们对布局做一下更改,把activity_main.xml改成下面的代码,就是换成上一个和下一个这样:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:visibility="invisible" android:text="上一个"/> <Button android:id="@+id/btn_next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_toRightOf="@id/btn_previous" android:text="下一个"/> <ImageView android:id="@+id/img_show" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/btn_previous"/></RelativeLayout>最后就是对MainActivity.java的一些逻辑更改了,核心的要点如下:1.curPos和page的控制以及处理逻辑2.根据网络是否可用加载网络还是数据库数据3.加载网络数据时存储到数据库需要避免重复插入 等等。代码实现:public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button previousBtn; private Button nextBtn; private ImageView showImg; private ArrayList<Sister> data; private int curPos = 0; //当前显示的是哪一张 private int page = 1; //当前页数 private PictureLoader loader; private SisterApi sisterApi; private SisterTask sisterTask; private SisterLoader mLoader; private SisterDBHelper mDbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sisterApi = new SisterApi(); loader = new PictureLoader(); mLoader = SisterLoader.getInstance(MainActivity.this); mDbHelper = SisterDBHelper.getInstance(); initData(); initUI(); } private void initData() { data = new ArrayList<>(); sisterTask = new SisterTask(); sisterTask.execute(); } private void initUI() { previousBtn = (Button) findViewById(R.id.btn_previous); nextBtn = (Button) findViewById(R.id.btn_next); showImg = (ImageView) findViewById(R.id.img_show); previousBtn.setOnClickListener(this); nextBtn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_previous: --curPos; if (curPos == 0) { previousBtn.setVisibility(View.INVISIBLE); } if (curPos == data.size() - 1) { sisterTask = new SisterTask(); sisterTask.execute(); } else if(curPos < data.size()) { mLoader.bindBitmap(data.get(curPos).getUrl(), showImg, 400, 400); } break; case R.id.btn_next: previousBtn.setVisibility(View.VISIBLE); if(curPos < data.size()) { ++curPos; } if (curPos > data.size() - 1) { sisterTask = new SisterTask(); sisterTask.execute(); } else if(curPos < data.size()){ mLoader.bindBitmap(data.get(curPos).getUrl(

上一页  [1] [2] [3] [4]  下一页


12.4 DrySister看妹子应用(第一版)——4.添加数据缓存(加入SQLite)