2012年10月11日木曜日

[android] Context Menuを作ってみる

コンテキストメニューは、ビューを長押しした時にポップアップされるアレのことです。

Windowsだと右クリックで出てくるヤツですね。

やることは以下の通り。

registerForContextMenu() でビューを登録
onCreateContextMenu() をオーバーライドしてコンテキストメニューを作成
onContextItemSelected() をオーバーライドしてコンテキストメニュー選択時の動作を記述

01 public class SampleActivity extends Activity {
02
03 /** リストビューに表示するアイテム. */
04 private List<String> list;
05
06 @Override
07 public void onCreate(Bundle savedInstanceState) {
08 super.onCreate(savedInstanceState);
09 setContentView(R.layout.main);
10
11 // リストビューに表示するリストを作成
12 list = new ArrayList<String>();
13 list.add("Test 001");
14 list.add("Test 002");
15 list.add("Test 003");
16 list.add("Test 004");
17 list.add("Test 005");
18
19 // アダプタを作成
20 ListAdapter adapter = new ArrayAdapter<String>(
21 this,
22 android.R.layout.simple_list_item_1,
23 list
24 );
25
26 // リストビューにアダプタを設定
27 ListView listView = (ListView) findViewById(R.id.ListView);
28 listView.setAdapter(adapter);
29
30 // コンテキストメニューのためにリストビューを登録
31 registerForContextMenu(listView);
32 }
33
34 @Override
35 public void onCreateContextMenu(
36 ContextMenu menu,
37 View v,
38 ContextMenuInfo menuInfo) {
39
40 // コンテキストメニューを作る
41 menu.setHeaderTitle("たいとる");
42 menu.add("めにゅ?1");
43 menu.add("めにゅ?2");
44 menu.add("めにゅ?3");
45
46 super.onCreateContextMenu(menu, v, menuInfo);
47 }
48
49 @Override
50 public boolean onContextItemSelected(MenuItem item) {
51 // 選択されたヤツをテキストビューに設定する
52 TextView textView = (TextView) findViewById(R.id.TextView);
53 textView.setText("selected: " + item.getTitle());
54
55 return super.onContextItemSelected(item);
56 }
57 }

0 件のコメント:

コメントを投稿