1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

キラッとプリ☆チャンコーデ管理アプリを更新してみた!

Posted at

以前、書いたこちらの記事(キラッとプリ☆チャンのコーデ管理アプリを作ってみた話)から更新しました。

更新した部分

リストの読み込み部分をSQLiteのデータベースにマルナゲ!

前のは、いちいちソースに書いてたので、これをSQLiteで作成しておいたデータベースを取得して、アプリのリストビューで見れるように。


     private class ListShowClickListener implements View.OnClickListener {

        @Override
        public void onClick(View view) {
            // データベースヘルパーオブジェクトを作成
            DatabaseHelper helper = new DatabaseHelper(PrichanJewel1.this);
            // データベース接続オブジェクトを作成
            try (SQLiteDatabase db = helper.getWritableDatabase()) {
                String sql = "select * from prij1corde order by _id";
                Cursor cursor = db.rawQuery(sql, null);
                String[] column = {"card_name", "card_own"};
                int[] cardList = {android.R.id.text1, android.R.id.text2};
                SimpleCursorAdapter adapter = new SimpleCursorAdapter
                        (PrichanJewel1.this, android.R.layout.simple_expandable_list_item_2,
                                cursor, column, cardList, 0);
                lvJprichan.setAdapter(adapter);
            }
        }
    }

これで、SQLiteに既に作られたデータベースにアクセスして、リストを取得して、リストビューに表示することができるようになりました。
更新の場合も同じような感じで出来ました。


        public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long id) {
            // 長押しされた位置を取得
            Cursor item = (Cursor)lvJprichan.getItemAtPosition(position);
            // 取得した位置にあるリスト名を取得(ここではカード名を取得する)
            String card_name = item.getString(item.getColumnIndex("card_name"));
            // データベースヘルパーオブジェクトを作成
            DatabaseHelper helper = new DatabaseHelper(PrichanJewel1.this);
            // データベース接続オブジェクトを作成
            try (SQLiteDatabase db = helper.getWritableDatabase()) {
                String upSql = "update prij1corde set card_own = '所持済' where card_name = '" + card_name + "'";
                SQLiteStatement stmt = db.compileStatement(upSql);
                stmt.executeUpdateDelete();
            }
            Toast.makeText(PrichanJewel1.this,
                    "登録完了!",Toast.LENGTH_SHORT).show();
            return true;
        }

なお、データベースヘルパーは
男子大学生の考えること:自前のSQLiteDatabaseファイルをassetsからandroidで使えるようにする
で、紹介されているソースコードほぼそのまま使っています。
リスト取得はこちらの記事が参考になりました。

sqliteで取得した値をListViewに表示する簡単な例

##どうしてそう出来たの?

なかなかいいアイデアが閃かず、半ばヤケクソでJavaとPostgreSQLで同じような仕組みのを作ったことで、ひらめいたわけです。
「データベース組み込んだらできるんじゃね?」
と。
やったことが全く無かったので、色々調べて半信半疑でやってみたら、うまく行ってしまったのでこういうことになったわけです。

以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?