【AndroidのViewを制する】 Toastを使いこなしてTextViewを一定時間表示する
今回、紹介する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);