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

 参考サイト

広告

関連記事

datebox-date

jQueryMobileでカレンダー表示 -DateBoxプラグインの利用-

スマートフォン対応をしているとカレンダーの表示の仕方をスマートフォンらしくしたいことがあると思います

記事を読む

1

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

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

記事を読む

no image

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

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

記事を読む

no image

jQuery Mobileでdata-role=headerを使うときの注意点 -勝手にタイトルが変更される件-

* 現象 +headタグでtitleタグで文字列(A)を記述している +data-role=he

記事を読む

no image

Twitterでプロテクトをかけているユーザが投稿したステータスを取得する方法

* 前提 ID Twitterの各投稿にはIDが存在していています。 そのIDを元にステータス

記事を読む

no image

PhoneGapを触ってみた ―導入編―

スマートフォン対応をjQuery Mobileを使ってやったので、その資産をいかせないかということで

記事を読む

no image

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

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

記事を読む

no image

iPhoneアプリ開発 −複数前の画面に戻る−

* やりたいこと ある画面から別の画面に遷移したい。 -1つ前の画面に戻りたい。 -2つ前の画面に戻

記事を読む

スクリーンショット 2012-10-20 14.26.24

iPhoneアプリ開発 −UITabControllerの利用−

* やりたいこと 上にあるように下部にあるタブをタッチしたら別のページを呼び出す。 * 

記事を読む

no image

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

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

記事を読む

広告

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 ↑