Toastの終了を検出する
メモ。
package com.freefly3104.toast01; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.FrameLayout; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button) findViewById(R.id.button1); // クリック処理(匿名クラス) btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自動生成されたメソッド・スタブ showToast("Hello, world"); } }); } private void showToast(String msg) { final TextView text = (TextView)findViewById(R.id.textView1); text.setText("Showing Toast ..."); final Toast toast = Toast.makeText(this, msg, Toast.LENGTH_LONG); new FrameLayout(this) { { addView(toast.getView()); // toastのviewをframelayoutでくるむ toast.setView(this); // framelayoutを新しくtoastに設定する } @Override public void onDetachedFromWindow() { super.onDetachedFromWindow(); // Toastが終了したあとの処理をする text.setText("Toast on Dismiss"); } }; toast.show(); } }