アクションバー(オプションメニュー)とコンテキストメニュー [Android Studio]
目次
1. 作るもの
2. 画面設計
2-1. メイン
2-2. オプションメニュー
2-3. コンテキストメニュー
3. コーディング
4. アクションバーを非表示にする
事前準備
メニューの[ファイル][新規]の「新規プロジェクト」でプロジェクトを作成します。その時にアクティビティは「空のアクティビティ」を選択します。
※アクティビティ名は「MainActivity」とします
1. 作るもの
アクティビティ(画面)のアクションバーに「オプションメニュー」と「戻る」を追加します。また、TextViewを長押しすると「コンテキストメニュー」を表示します。
コーディングでは各イベントにも対応します。
2. 画面設計
2-1. メイン
デフォルトの「Hello World」のText ViewのIDをtextViewにする。
2-2. オプションメニュー
resの上で右クリックで[新規][Androidリソースディレクト]を選択します。
ディレクトリ名、リソースタイプをmenuにしてOKボタンを押します。
menuの上で右クリックで[新規][Menuリソースファイル]を選択します。
ファイル名にoption_menuを入力してOKボタンを押します。
次のようになります。
option_menu.xmlをダブルクリックしてデザインモードにします。そして、パレットから「Menu Item」を3つドロップします。
各メニューアイテムは次のように設定します。Iconは右側の「...」をクリック後に、Drawableのandroidから適当に選んでください。
次のようになります。(アイコンは適当でOK)
2-3. コンテキストメニュー
menuの上で右クリックで[新規][Menuリソースファイル]を選択します。ファイル名にcontext_menuを入力してOKボタンを押します。
パレットから「Menu Item」を2つドロップします。各メニューアイテムは次のように設定します。
これで、画面設計は完了です。
3. コーディング
[MainActivity.java]
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// アクションバーに戻るを表示する
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// コンテキストメニューをTextViewに設定する
registerForContextMenu(findViewById(R.id.textView));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// オプションメニューを作成する
getMenuInflater().inflate(R.menu.option_menu,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
// コンテキストメニューを作成する
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.context_menu,menu);
menu.setHeaderTitle("コンテキストメニュー");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
String str= "";
// オプションメニュー
switch (item.getItemId()){
case R.id.item1 : str="アイテム1";break;
case R.id.item2 : str="アイテム2";break;
case R.id.item3 : str="アイテム3";break;
case android.R.id.home : str="戻る";break;
}
new AlertDialog.Builder(MainActivity.this)
.setTitle("情報")
.setMessage(str +"が選択されました。")
.setPositiveButton("OK", null)
.show();
return super.onOptionsItemSelected(item);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
String str= "";
// コンテキストメニュー
switch (item.getItemId()){
case R.id.itemC1 : str="アイテム1";break;
case R.id.itemC2 : str="アイテム2";break;
}
new AlertDialog.Builder(MainActivity.this)
.setTitle("情報")
.setMessage(str +"が選択されました。")
.setPositiveButton("OK", null)
.show();
return super.onContextItemSelected(item);
}
}
4. アクションバーを非表示にする
res\valuesのstyles.xmlの
を
にするとアクションバーが非表示になります。
参考URL
R.drawableのアイコンのAPIレベルは公式でご確認下さい。
関連記事
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









