Androidアプリ開発 -リストをタッチして別ページ表示-

公開日: : Android, IT


 前提

  • 「設定画面」で各種項目を設定。

    • 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"));
}

 参考サイト

広告

関連記事

mixisample

iPhoneアプリ開発 -mixiSDKを使ってmixi連携をしてみる(1)-

* やりたいこと iPhoneアプリでmixiと連携し、mixiボイスなどに文字を投稿する。 ※

記事を読む

input

CakePHP2系でTwigを利用 -書き方のメモ-

CakePHP2系でTwigをどのように記述するかのメモ。 数パターンしか載せてないですが、だいた

記事を読む

Jenkins + スマホアプリ(1) -スマホアプリ用CI環境を作ってみよう-

前回までは、iPhoneアプリでのCI環境でした。 TestFlightがAndroidアプリにも

記事を読む

1

Androidアプリ開発 -9patchで吹き出し画像を作る-

* やりたいこと TextViewで文字を表示させ、背景画像に吹き出し画像を設定した場合。 文字

記事を読む

SnapCrab_NoName_2012-12-1_14-44-53_No-00

アプリのためにFacebookページ作成 -会社のメールアドレスで管理する方法-

アプリを作ると、色々と宣伝をしたくなります。 宣伝の方法は色々ありますが、今回はFacebookペ

記事を読む

no image

ソーシャルボタン(Twitterのフォローボタン、Facebookのオススメボタン)を設置する

サイトにソーシャルボタンを設置しようと思いちょこっと調べてみました。 * 設置するボタン

記事を読む

no image

iPhoneアプリを開発してての疑問 -教えてエライ人!-

MacでiPhoneアプリを開発してて疑問に思ったのの解決してないことを列挙。 知識不足をさらけ出し

記事を読む

MacでRuby on Railsの開発環境構築 -Apacheで動かす-

* 環境 -MacBook Air MD231J/A -Mac OS X バージョン10.8.2

記事を読む

no image

iPhoneアプリをヒットさせるために大事な5つのこと

巷にはたくさんのiPhoneアプリがたくさんあります。 そして、毎日新しいアプリがリリースされていま

記事を読む

no image

CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある

記事を読む

広告

Comment

  1. ListViewのクリック

    前回までにリストビューの基本的な表示を行いました ListActivityを利用したリスト表示 今回は表示したリストビューをタッチした時のイベントを検出したいと思います リストビューの選択…

初心者の初心者のためのAndroidアプリ開発! にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑