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

 参考サイト

広告

関連記事

Jenkins + DeployGate(2) -DeployGateにアプリをアップ!-

DeployGateを使ってますか? 継続的にDeployってますか? TestFlightの

記事を読む

WordPressプラグイン「WP Hatena Notation」にPullRequestを投げた話

WordPressではてな記法が利用できる「WP Hatena Notation」を重宝しています。

記事を読む

no image

str_padとsprintfの速度

PHPで同じことが出来る「str_pad」と「sprintf」。 今まではsprintfを使う機会

記事を読む

sample1

jQuery Mobile1.2のCollapsible Listsを試してみた -画像のカスタマイズについて-

8月1日にjQuery Mobile1.2 Alphaが出ました。 まだAlphaなので自

記事を読む

no image

Capistranoで簡単デプロイ -開発用サーバー編-

cakePHPを使って開発しているサービス()で、リリース周りを楽にしたいなと思いCapistran

記事を読む

Selenium2.0でUIテスト(1) -まずはPHPでやってみる-

久しぶりにSeleniumを触ってみました。 Selenium2.0から色々と変わったみたいで少々

記事を読む

no image

PHP_CodeSniffer+ Eclipse + PHP Code Formatter Pluginでコーディング規約を守ったコーディング

1人でプログラミングをしているにしても、多人数でプログラミングをしているにしても、コーディング規約を

記事を読む

no image

jQuery Mobileの初期設定 -jQuery Mobieを利用時にページ内リンクさせたい-

* 前提 jQuery Mobileを利用していて、以下のタグを使ってページ内遷移したいことがありま

記事を読む

iPhoneアプリ開発 芳名帳アプリ作成(4) -設定準備-

* 今までの流れ - -[http://pplace.jp/2013/06/1531/:title=

記事を読む

no image

Androidアプリ開発 -ギャラリーから選んだ画像のサムネイルを取得-

* やりたいこと +ボタンをクリックしてギャラリーを表示。 +ギャラリーで画像を選んだら、その画像の

記事を読む

広告

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 ↑