イベントがいつ起きているのか
イベント発生を調べる
このクラスを使えば
- このボタンを押したときのイベントはどれで取れるんだろう
- イベントはちゃんと起きているかな?
っていうことを調べるときに継承すれば、簡単に分かるかも
Activityクラスのすべて*1のイベントの発生をログおよび、Toastに表示します。
Toastはけっこううざいからフラグで表示の有無を設定します
import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources.Theme; import android.graphics.Bitmap; import android.graphics.Canvas; import android.os.Bundle; import android.util.AttributeSet; import android.util.Log; import android.view.ContextMenu; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ContextMenu.ContextMenuInfo; import android.view.WindowManager.LayoutParams; import android.widget.Toast; public class EventToasterActivity extends Activity { private final String TAG = "EVENT_TOASTER"; protected boolean appriseToast = true; private void apprise(String text) { if (appriseToast) { Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); } Log.i(TAG, text); } @Override protected void onApplyThemeResource(Theme theme, int resid, boolean first) { apprise("onApplyThemeResource"); super.onApplyThemeResource(theme, resid, first); } @Override protected void onChildTitleChanged(Activity childActivity, CharSequence title) { apprise("onChildTitleChanged"); super.onChildTitleChanged(childActivity, title); } @Override public void onConfigurationChanged(Configuration newConfig) { apprise("onConfigurationChanged"); super.onConfigurationChanged(newConfig); } @Override public void onContentChanged() { apprise("onContentChanged"); super.onContentChanged(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); apprise("onCreate"); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { apprise("onCreateContextMenu"); super.onCreateContextMenu(menu, v, menuInfo); } @Override public CharSequence onCreateDescription() { apprise("onCreateDescription"); return super.onCreateDescription(); } @Override public Dialog onCreateDialog(int id) { apprise("onCreateDialog"); return super.onCreateDialog(id); } @Override public boolean onCreateOptionsMenu(Menu menu) { apprise("onCreateOptionsMenu"); return super.onCreateOptionsMenu(menu); } @Override public boolean onCreatePanelMenu(int featureId, Menu menu) { apprise("onCreatePanelMenu"); return super.onCreatePanelMenu(featureId, menu); } @Override public View onCreatePanelView(int featureId) { apprise("onCreatePanelView"); return super.onCreatePanelView(featureId); } @Override public boolean onCreateThumbnail(Bitmap outBitmap, Canvas canvas) { apprise("onCreateThumbnail"); return super.onCreateThumbnail(outBitmap, canvas); } @Override public View onCreateView(String name, Context context, AttributeSet attrs) { apprise("onCreateView"); return super.onCreateView(name, context, attrs); } @Override protected void onDestroy() { apprise("onDestroy"); super.onDestroy(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { apprise("onKeyDown"); return super.onKeyDown(keyCode, event); } @Override public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) { apprise("onKeyMultiple"); return super.onKeyMultiple(keyCode, repeatCount, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { apprise("onKeyUp"); return super.onKeyUp(keyCode, event); } @Override public void onLowMemory() { apprise("onLowMemory"); super.onLowMemory(); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { apprise("onMenuItemSelected"); return super.onMenuItemSelected(featureId, item); } @Override public boolean onMenuOpened(int featureId, Menu menu) { apprise("onMenuOpened"); return super.onMenuOpened(featureId, menu); } @Override public void onNewIntent(Intent intent) { apprise("onNewIntent"); super.onNewIntent(intent); } @Override public boolean onOptionsItemSelected(MenuItem item) { apprise("onOptionsItemSelected"); return super.onOptionsItemSelected(item); } @Override public void onOptionsMenuClosed(Menu menu) { apprise("onOptionsMenuClosed"); super.onOptionsMenuClosed(menu); } @Override public void onPanelClosed(int featureId, Menu menu) { apprise("onPanelClosed"); super.onPanelClosed(featureId, menu); } @Override protected void onPause() { apprise("onPause"); super.onPause(); } @Override public void onPostCreate(Bundle savedInstanceState) { apprise("onPostCreate"); super.onPostCreate(savedInstanceState); } @Override public void onPostResume() { apprise("onPostResume"); super.onPostResume(); } @Override public void onPrepareDialog(int id, Dialog dialog) { apprise("onPrepareDialog"); super.onPrepareDialog(id, dialog); } @Override public boolean onPrepareOptionsMenu(Menu menu) { apprise("onPrepareOptionsMenu"); return super.onPrepareOptionsMenu(menu); } @Override public boolean onPreparePanel(int featureId, View view, Menu menu) { apprise("onPreparePanel"); return super.onPreparePanel(featureId, view, menu); } @Override public void onRestart() { apprise("onRestart"); super.onRestart(); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { apprise("onRestoreInstanceState"); super.onRestoreInstanceState(savedInstanceState); } @Override public void onResume() { apprise("onResume"); super.onResume(); } @Override public Object onRetainNonConfigurationInstance() { apprise("onRetainNonConfigurationInstance"); return super.onRetainNonConfigurationInstance(); } @Override public void onSaveInstanceState(Bundle outState) { apprise("onSaveInstanceState"); super.onSaveInstanceState(outState); } @Override public boolean onSearchRequested() { apprise("onSearchRequested"); return super.onSearchRequested(); } @Override protected void onStart() { apprise("onStart"); super.onStart(); } @Override protected void onStop() { apprise("onStop"); super.onStop(); } @Override public void onTitleChanged(CharSequence title, int color) { apprise("onTitleChanged"); super.onTitleChanged(title, color); } @Override public boolean onTouchEvent(MotionEvent event) { apprise("onTouchEvent"); return super.onTouchEvent(event); } @Override public boolean onTrackballEvent(MotionEvent event) { apprise("onTrackballEvent"); return super.onTrackballEvent(event); } @Override public void onUserInteraction() { apprise("onUserInteraction"); super.onUserInteraction(); } @Override public void onUserLeaveHint() { apprise("onUserLeaveHint"); super.onUserLeaveHint(); } @Override public void onWindowAttributesChanged(LayoutParams params) { apprise("onWindowAttributesChanged"); super.onWindowAttributesChanged(params); } @Override public void onWindowFocusChanged(boolean hasFocus) { apprise("onWindowFocusChanged"); super.onWindowFocusChanged(hasFocus); } }
これを書くだけで
半日かかりました。
*1:おそらく