【AndroidのViewを制する】 Toastを使いこなしてTextViewを一定時間表示する

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

今回、紹介するToastはViewを画面下からスライドインさせることができます。
スライドインしたViewは一定時間が経過すると自動で消えます。
ユーザーに簡単な情報を提示することができます。
今回は簡単に表示する方法に関連するメソッドを説明します。

Toast.makeTextを使ってTextViewをスライドインさせる

Toast.makeTextはTextViewを持つToastを簡単に作成できるファクトリメソッドです。
Toast.makeTextには文字列を指定するか文字列リソースIDを指定する二つのオーバーロードがあります。


    LinearLayout linearLayout = new LinearLayout(this);
    linearLayout.setOrientation(LinearLayout.VERTICAL);
    Button makeTextButton = new Button(this);
    makeTextButton.setText("makeTextで文字列を設定");
    makeTextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            /**
             * 第1引数 : コンテキスト
             * 第2引数 : 表示する文字列 or 文字列リソースID
             * 第3引数 : 表示時間(Toast.LENGTH_SHORT-1秒間・Toast.LENGTH_LONG-5秒間)
             */
            Toast toast = Toast.makeText(ToastActivity.this, "makeTextメソッドで作った", Toast.LENGTH_SHORT);
            toast.show();
        }
    });
    linearLayout.addView(makeTextButton);
    setContentView(linearLayout);


Toast#showを使ってToastを表示する

Toast#showは作成したToastインスタンスを表示するメソッドです。


    LinearLayout linearLayout = new LinearLayout(this);
    linearLayout.setOrientation(LinearLayout.VERTICAL);
    Button makeTextButton = new Button(this);
    makeTextButton.setText("makeTextで文字列を設定");
    makeTextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast toast = Toast.makeText(ToastActivity.this, "makeTextメソッドで作った", Toast.LENGTH_SHORT);
            // 表示する
            toast.show();
        }
    });
    linearLayout.addView(makeTextButton);
    setContentView(linearLayout);


Toast#setTextを使ってToast.makeTextで作成したToastの文字列を変更する

Toast#setTextは作成したToastインスタンスの文字列を変更するメソッドです。
Toast#setTextには文字列を指定するか文字列リソースIDを指定する二つのオーバーロードがあります。


    LinearLayout linearLayout = new LinearLayout(this);
    linearLayout.setOrientation(LinearLayout.VERTICAL);
    Button setTextButton = new Button(this);
    setTextButton.setText("setTextで文字列を設定");
    setTextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast toast = Toast.makeText(ToastActivity.this, "staticメソッドで作った", Toast.LENGTH_SHORT);
            toast.setText("setTextで文字列を変更");
            toast.show();
        }
    });
    linearLayout.addView(setTextButton);
    setContentView(linearLayout);