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

 参考サイト

広告

関連記事

no image

第二回Androidテスト祭り参加記録 -祭りに参加してきたよ-

久しぶりに勉強会に参加してきました。 参加してきたのは「第二回Androidテスト祭り(4/28)

記事を読む

no image

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

* 前回 は、「ユーザーにAPI利用のための認可」をおこなってもらうところまでやりました。 本エン

記事を読む

no image

iPhoneアプリ開発 -UIButtonのTouch Down、Touch up Inside、Touch up Outsideの使い方-

* Touch DownとTouch up Inside、Touch up Outsideの違い

記事を読む

no image

Twitterでサービスにログイン -PHP(CakePHP1.3)で実践編-

以前、ソーシャルログインについて書きました。 ただ、Twitter連携にまだ触れてない人にはちょ

記事を読む

no image

Facebookがちょっとコワイ vol.1 -自分の情報をコントロールできない-

Facebookの最近の広がり方などを見ていて、少々不安を感じたので思ったことをつらつらと書いてみま

記事を読む

no image

CakePHP1.3でテストコード(3) -ENUM型が使えない-

cakePHP1.3でのSimpleTestを使ったテストケースの第3回目。 今回は、テーブル構成で

記事を読む

no image

ViewController単位で画面の向きを変えてみる

ViewController毎に画面の向きを変えたい!ということがあったのでやってみました。 *

記事を読む

no image

カレログ騒動で考えたライフログのこと

今回、カレログというAndroidアプリが話題になり騒動になってます。 というわけで、ふとカレログ

記事を読む

no image

order byでハマったこと -order by、group byの処理順序-

CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 * 

記事を読む

no image

jQuery Mobile導入手順 -はじめの一歩-

jQuery Mobileの1.0がリリースされ、利用したい方が増えていると思います。 最初に何を

記事を読む

広告

Comment

  1. ListViewのクリック

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

Message

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

次の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 ↑