Android Toast

android-toast.png
Toast.makeText(this, "何かのメッセージ", Toast.LENGTH_LONG).show();

Toastの出現位置を変えるには?

setGravity()を使う方法が一般的のようだ[2]
このsetGravity()の使い方がややこしいのですが、
たとえば

toast.setGravity(Gravity.CENTER|Gravity.LEFT, 0, 0);

こうすると画面中央左に出現します
こんな風にすると絶対座標指定っぽくなります
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

setGravity()

引数は

  • Gravity 定数
  • x-位置のオフセット
  • y-位置のオフセット

Toastの出現位置をボタンの脇にするには

Toast helptxt = Toast.makeText(mActivity, "ボタンのヘルプテキストです", Toast.LENGTH_LONG);
                    helptxt.setGravity(Gravity.TOP | Gravity.START,mBotton.getLeft(),mBotton.getBottom());
                    helptxt.show();

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

別スレッドでトースト出すのはダメ[3]らしい。別スレッドというのはmainじゃないスレッドで、という意味。
なのでHandlerを使って行う

private final Handler handler = new Handler();
new Thread(new Runnable(){
  @Override
  public void run() {
    handler.post(new Runnable() {
      public void run() {
          Toast.makeText(activity,"トーストの表示", Toast.LENGTH_LONG).show();
      }
    });
  }
}).start();

サポートサイト Wikidot.com