人気ブログランキング | 話題のタグを見る
ブログトップ

智信の部屋

tomonobu.exblog.jp

プログラムに関する雑談なんかを書いていこうと思います。(android記事のまとめサイトはこちらです→http://tomonobu.rocketserver.jp/android_blog_index.php)

Android:オプションメニュー表示

アプリケーションにメニューを表示させてみよう!
っということで今回はオプションメニューとコンテキストメニューのうち、
オプションメニュー」の表示を行いたいと思います。

参考資料
 「6.2 メニューの作成
 「Android メニューアイコン

・オプションメニューの表示のために使用するクラスは Menu を使用する。
・メニュー個々のアイテムに関するクラスは MenuItem を使用する。
・メニューの設定は onCreateOptionsMenu で実施する。
・メニュー内の選択におけるハンドラは onOptionsItemSelected で実施する。
・メニューの項目設定においてはiconの設定も可能となっている。
 iconは R.drawable のものが使用可能となっている。

サンプルコード
package tomonobu.com.test.program1;

import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.text.ClipboardManager;
import android.text.SpannableStringBuilder;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.TextView.BufferType;
import android.widget.LinearLayout;

public class Test_program_1Activity extends Activity {
private static final int MENU_COPY = 0;
private static final int MENU_PASTE = 1;
private final int WRAP_CONTENT = ViewGroup.LayoutParams.WRAP_CONTENT;
private final int FILL_PARENT = ViewGroup.LayoutParams.FILL_PARENT;

protected void onCreate(Bundle icicle) {
super.onCreate(icicle);

LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
setContentView(linearLayout);

final EditText edit = new EditText(this);
final TextView tv = new TextView(this);

edit.setHeight(300);
edit.setId(R.id.text_edit);
edit.setText("Test test", BufferType.NORMAL);
linearLayout.addView(edit,
new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT));

tv.setId(R.id.text_view);
linearLayout.addView(tv,
new LinearLayout.LayoutParams(FILL_PARENT, WRAP_CONTENT));
}

public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_COPY, 0, "コピー").setIcon(android.R.drawable.ic_menu_save);
menu.add(0, MENU_PASTE, 0, "ペースト");
return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
final ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

switch (item.getItemId()) {
case MENU_COPY:
SpannableStringBuilder sb =
(SpannableStringBuilder)((EditText)findViewById(R.id.text_edit)).getText();
cm.setText(sb.toString());
break;
case MENU_PASTE:
((TextView)findViewById(R.id.text_view)).setText(cm.getText().toString());
break;
}
return true;
}
}


by Tomonobu1979 | 2011-07-16 20:59 | android

by Tomonobu1979