在activity起步后立即弹出PopupWindow的三个方法
在activity启动后立即弹出PopupWindow的三个方法
若在Activity的onCreate()方法中直接写弹出PopupWindow方法会报错,因为activity没有完全启动是不能弹出PopupWindow的。
那我们只需要在activity完全启动后再弹出PopupWindow就行了。
第一种方法: 利用Activity的 onWindowFocusChanged()方法
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- // TODO Auto-generated method stub
- super.onWindowFocusChanged(hasFocus);
- // 弹出PopupWindow的具体代码
- }
第二种方法: 利用Handler和Runnable
- private Handler mHandler = new Handler();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mHandler.postDelayed(mRunnable, 500);
- }
- private Runnable mRunnable = new Runnable() {
- public void run() {
- // 弹出PopupWindow的具体代码
- }
- };
第三种方法:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mHandler.sendEmptyMessageDelayed(SHOWWINDOW, 200); }
private Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case SHOWWINDOW: popTipMessage(); break; case ClOSEWINDOW: break; } } };