2011年9月5日月曜日

ListViewの一行をクリックし、別の画面に遷移【android】【ListView】【画面遷移】

ListViewの一行をクリックし、別の画面に遷移する場合には、
onListItemClick()をオーバーライドします。
※別の方法もあるようですが、この方法が比較的綺麗にコーディングできそうです。

オーバーライドしたonListItemClick()の中で、intentインスタンスを作成し、
startActivity()を実行します。
Intent intent = new Intent(遷移元のクラス.this, 遷移先のクラス.class);
と作成してください。

Intent.putExtra()を使用することにより、値の受け渡しも可能です。

    /**

* クリックされたListに対して、ImageListViewに遷移する。
* (非 Javadoc)
* @see android.widget.AdapterView$OnItemClickListener#onItemClick(android.widget.AdapterView, android.view.View, int, long)
* @param AdapterView parent(未使用)
* @param View view(未使用)
* @param int position(クリックされたポジション)
* @param long id(未使用)
* @return void
* @exception なし
*/

@Override
public void onListItemClick(ListView listView, View v, int position,long id) {
super.onListItemClick(listView, v, position, id);

String dir = dirList.get(position);
Log.v("onClick", String.format("onListItemClick: %s", dir));

// ディレクトリリストからクリックされたディレクトリを取得
String imageDirPath = dirList.get(position);
// ImageListViewクラスに、ディレクトリを渡す為のIntentを作成
Intent intent = new Intent(DirListView.this, ImageGridView.class);
// Intentにクリックされたディレクトリを設定
intent.putExtra("IMAGE_DIR_PATH", imageDirPath);
// ImageListViewに遷移
startActivity(intent);
}

0 件のコメント:

コメントを投稿