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アプリ開発 -画像を加工してセピア色にしてみる-

* やりたいこと ギャラリーから選んだ画像を加工してセピア色にしたい * ソース ** 画像を取得

記事を読む

iPad(Retinaディスプレイモデル)にiOS7を入れてみた

iPadにiOS7を入れてみたので、その報告。 iPhone5にはまだ入れておかないでおこうと思っ

記事を読む

no image

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

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

記事を読む

no image

PhoneGapを触ってみた(3) -画像を扱う(Camera APIを使ってみる)-

今回は、PhoneGapのCamera APIを使って携帯のアルバムにある画像を扱ってみます。

記事を読む

no image

iPhoneアプリ開発 芳名帳アプリ作成(3) -名前を書けるようにする-

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

記事を読む

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

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

記事を読む

no image

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

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

記事を読む

スクリーンショット 2012-12-06 15.34.43

iPhoneアプリ開発 -端末がネットワークにつながっているかどうか知りたい-

* やりたいこと アプリがネットに繋がっていなければアラートボックスを表示させたい。 ネットに繋

記事を読む

no image

iPhoneアプリ開発 -バックグラウンド処理をした際にはまったこと-

* おきたこと 以下のメソッドを用いて、処理に時間がかかるもの(ここだとhoge)をバックグラウンド

記事を読む

no image

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

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

記事を読む

広告

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 ↑