【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);