Androidアプリ開発 -リストをタッチして別ページ表示-
前提
- 「設定画面」で各種項目を設定。
- Activity:ConfigActivity
- UI:layout/config.xml
- 「設定一覧画面」で登録した各種項目を表示。
- Activity:ListActivity
- UI:layout/list.xml
やりたいこと
「設定一欄画面」で表示された一覧で、ある設定をタッチしたらその設定の編集画面に移動させたい。
※今回は、ListActivityからConfigActivityに移動。
やったこと
ListActivity側(設定一覧画面)
SimpleAdapterクラスを使ってレイアウトをカスタマイズ。
ここで、移動先のConfigActivityをセットし、putExtraでタッチした設定のIDをセットしています。
//略 ListView lv = new ListView(this); setContentView(lv); Map<String, Object> map = new HashMap<String, Object>(); //実際は以下の箇所はDBから設定一欄を取得しています。 map.put("title", "設定"); Intent intent = new Intent(); intent.setClass(this, ConfigActivity.class); intent.putExtra("id", 1); map.put("intent", intent); myData.add((HashMap<String, Object>) map); SimpleAdapter adapter = new SimpleAdapter(this, myData, R.layout.list, new String[] { "title"}, new int[] { R.id.title }); lv.setAdapter(adapter); //リストビューのアイテムがクリックされた時に呼び出されるコールバックリスナー lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView) parent; Map<String, Object> map = (Map<String, Object>) listView.getItemAtPosition(position); Intent intent = (Intent) map.get("intent"); startActivity(intent); } }); //略
上記をonCreate内でおこなっています。
ConfigActivity側(設定画面)
getIntExtraで設定IDを受け取って、そのIDを元に設定情報をDBから受け取ります。
そして、設定項目に値を入れます。
//略 Intent intent = getIntent(); if(intent != null){ Integer id = intent.getIntExtra("id", 1); //このメソッドでDBからidをキーにして設定情報を受け取って、各項目を入れます。 this.setData(id); } //略
ちなみにsetData(id)は以下のような感じです。
private void setData(Integer id) SQLiteDatabase sdb = helper.getReadableDatabase(); HashMap<String, String> list = helper.get(id); //ここで設定情報を取得 title.setText(list.get("title")); subject.setText(list.get("subject")); body.setText(list.get("body")); }
参考サイト
広告
関連記事
-
iPhoneアプリ開発 -mixiSDKを使ってmixi連携をしてみる(1)-
* やりたいこと iPhoneアプリでmixiと連携し、mixiボイスなどに文字を投稿する。 ※
-
CakePHP2系でTwigを利用 -書き方のメモ-
CakePHP2系でTwigをどのように記述するかのメモ。 数パターンしか載せてないですが、だいた
-
Jenkins + スマホアプリ(1) -スマホアプリ用CI環境を作ってみよう-
前回までは、iPhoneアプリでのCI環境でした。 TestFlightがAndroidアプリにも
-
Androidアプリ開発 -9patchで吹き出し画像を作る-
* やりたいこと TextViewで文字を表示させ、背景画像に吹き出し画像を設定した場合。 文字
-
アプリのためにFacebookページ作成 -会社のメールアドレスで管理する方法-
アプリを作ると、色々と宣伝をしたくなります。 宣伝の方法は色々ありますが、今回はFacebookペ
-
ソーシャルボタン(Twitterのフォローボタン、Facebookのオススメボタン)を設置する
サイトにソーシャルボタンを設置しようと思いちょこっと調べてみました。 * 設置するボタン
-
iPhoneアプリを開発してての疑問 -教えてエライ人!-
MacでiPhoneアプリを開発してて疑問に思ったのの解決してないことを列挙。 知識不足をさらけ出し
-
MacでRuby on Railsの開発環境構築 -Apacheで動かす-
* 環境 -MacBook Air MD231J/A -Mac OS X バージョン10.8.2
-
iPhoneアプリをヒットさせるために大事な5つのこと
巷にはたくさんのiPhoneアプリがたくさんあります。 そして、毎日新しいアプリがリリースされていま
-
CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-
タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある
Comment
ListViewのクリック
前回までにリストビューの基本的な表示を行いました ListActivityを利用したリスト表示 今回は表示したリストビューをタッチした時のイベントを検出したいと思います リストビューの選択…