2017年04月

TypeScript 2.3 RC 変更点 - Qiita

(追記)
「なお、async/awaitのES3/ES5 downpileは2.1.1で出来るようになっていました。」
まじか、気づいていなかった(^^;)
今度、試してみよ。

前に書いたコード、これ使うとちょっとすっきりするんだろうな。

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

ActionBarに表示したメニューアイコンを動的に変更してみる。

次の図にあるActionBarのアイコンを押すとアイコンが切り替わるものを作ってみる。

 003

Empty Activityの1つのプロジェクトを用意する。
on.png、off.pngを用意してリソースのdrawableに追加する。
次のようなメニューリソース(main_menu.xml)を用意する。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/lamp"
        android:icon="@drawable/off"
        app:showAsAction="always" />
</menu>

MainActivityクラスにこのボタンの状態を表す変数を用意する。

    // trueで点灯
    private boolean lamp = false;

onCreateOptionsMenuをオーバーライドしてメニューを用意する。ここで状態を保存している変数lampをみてアイコンを変更する。

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);

        MenuItem menuLamp = menu.findItem(R.id.lamp);
        if(lamp) {
            menuLamp.setIcon(R.drawable.on);
        } else {
            menuLamp.setIcon(R.drawable.off);
        }
        return true;
    }

アイコン(メニュー)を選択したときの処理を追加する。

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.lamp:
                // 状態を反転
                lamp = !lamp;
                // メニューの再作成するように設定する
                invalidateOptionsMenu();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

ようは、invalidateOptionsMenu()を呼ぶことでメニューを再作成するようにして、メニューを再作成することだ。


このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

なんか急に、いや、Android Studioを2.3.1にバージョンアップしたときからなのか、コード補完がおかしくなった。インポートしていないクラスも補完リストに出てたはずなんだが出なくなった。

うちではメニューのFile - Invalidate Caches/Restartで直った。

001

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

Android Studioのエラー(CreateProcess error=216):「ぷろぐらむ」とか:So-netブログ
このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

改行コードが CR+LF のシェルスクリプトを Cygwin で実行できるようにする。 - 量産メモ帳
export SHELLOPTS
set -o igncr

このエントリーをはてなブックマークに追加 Clip to Evernote
ブログランキング・にほんブログ村へ
にほんブログ村

↑このページのトップヘ