2012年1月6日金曜日

ListViewでの行選択イベント

どもども、最近本当に寒いですね。
体調を崩さないように気を付けないといけませんね。

さて、今回の更新は、前回作成したListViewの行を選択した際のイベントについて記述していきたいと思います。

前回の状態だと、
こんな感じですね。

このListViewに行選択時のイベントを付けたいと思います。

最初は、ListViewのAdapterクラスの中で、ListViewの行レイアウトに対して
setOnClickListenerイベントを付与して実現しようとしたのですが、
ListViewの通常の行選択(オレンジ色になる奴です)すら動かなくなってしまいました。

ということで、完全にミスっているなということに気が付きました。

そこで、調べた結果setOnItemClickListenerというアイテム選択用のイベントがあるということでした。
まあ、そりゃそうですよね・・・
ってことで、こんな感じで書いてみました。

// リストビューのアイテムがクリックされた時に呼び出されるコールバックリスナーを登録します
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        ListView listView = (ListView)parent;
        // クリックされたアイテムを取得します
        final History history = (History)listView.getItemAtPosition(position);
        ・・・・
    }
});

簡単に、読むとイベントが起きたら、その中から設定した値を取得するって感じですね。
こちらの取得できる値は、Adapterクラス作成時に継承した型が取れるみたいですね。
私は、Historyというオブジェクトをとれるようにしています。

さて、イベントが拾えるようになったので、削除処理を組み込んでみました。
行を選択すると、
上記のようなダイアログが表示されて、『はい』をクリックすると、
という形で削除されるようになりました。

これで、登録と削除ができるようになったので、
ほぼ小遣い帳としての機能をもった状態になったと思うので、
次回以降の更新ではAndroidマーケットへのアップの方法を調べたいと思います。
※更新?消して登録すればいいじゃないですか・・・

こんなしょぼいの登録しても大丈夫かなぁ・・・とも思いますが、今後改良するということで良しとします。

ではでは。

0 件のコメント:

コメントを投稿