浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【androidjava】アクションバーにボタンをつけて各々に機能を付ける初歩的かつ基礎的な方法

アクションバーに何らかの機能を付けるときは以下のように

書くことで実装することができます。


機能が何もないボタンを実装する方法

例として右上に二つのボタンをつけるとします。

①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>



item~で任意の画像を追加することで作成することができます。

これで無期能ボタンは作成できました。

後はそれぞれに機能を持たせます。

アクションバーの機能は、switch文を使ってidを仕分けることで

実装することが出来ます。

まずはオプションメニューを作成・初期化するためにonCreateOptionsMenu

を作成します。


@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);
    }

上から①戻る、②リロード、③シェアになります。

軽めの機能であればこのように簡単に書くことが出来ます。

三番目のシェア機能については後日記事を書いていきたいと思います。

  • この記事いいね! (0)