アクションバーに何らかの機能を付けるときは以下のように
書くことで実装することができます。
機能が何もないボタンを実装する方法
例として右上に二つのボタンをつけるとします。
①res内にmenuというフォルダを作成
②新規xml・main.xmlを作成
③レイアウトを作成
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/reload" android:icon="@drawable/reload_black" android:title="@string/reload" app:showAsAction="always" /> <item android:id="@+id/menu_share" android:icon="@drawable/share" android:orderInCategory="100" android:title="" app:showAsAction="always" /> </menu> [java] item~で任意の画像を追加することで作成することができます。 これで無期能ボタンは作成できました。 後はそれぞれに機能を持たせます。 アクションバーの機能は、switch文を使ってidを仕分けることで 実装することが出来ます。 まずはオプションメニューを作成・初期化するためにonCreateOptionsMenu を作成します。 [java] @Override public boolean onCreateOptionsMenu(Menu menu) { // オプションメニューを作成する getMenuInflater().inflate(R.menu.menu,menu); return super.onCreateOptionsMenu(menu); }
その後機能ごとにswitchでidを識別。caseで各々で実装したい機能を記述。
//メニュー別に押したときの動作を切り分ける @Override public boolean onOptionsItemSelected(MenuItem menu) { int id = menu.getItemId(); switch (id){ case android.R.id.home: SharedPreferences.Editor edit = datas.edit(); edit.clear(); edit.apply(); finish(); break; case R.id.reload: finish(); startActivity(getIntent()); break; case R.id.menu_share: Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, "https://なんとかかんとか.txt"); sendIntent.setType("text/plain"); Intent shareIntent = Intent.createChooser(sendIntent, null); startActivity(shareIntent); break; } return super.onOptionsItemSelected(menu); }
上から①戻る、②リロード、③シェアになります。
軽めの機能であればこのように簡単に書くことが出来ます。
三番目のシェア機能については後日記事を書いていきたいと思います。