我想将弹出窗口用于我的 UI 活动。实际上,我的主要活动页面中有一个按钮,单击它应该像对话窗口一样打开。
在那个对话窗口中,我想在其中有两个其他按钮,单击它们应该为每次单击传递一些值**(没有窗口消失)**,如果在定义的时间内没有单击(超时)它应该消失并返回到主要活动。
我可以使用“Intent”来做到这一点,但我想在超时后用这个自动消失的对话框窗口来实现它。我怎样才能做到这一点。?请帮我解决这个问题。
提前致谢,
我想将弹出窗口用于我的 UI 活动。实际上,我的主要活动页面中有一个按钮,单击它应该像对话窗口一样打开。
在那个对话窗口中,我想在其中有两个其他按钮,单击它们应该为每次单击传递一些值**(没有窗口消失)**,如果在定义的时间内没有单击(超时)它应该消失并返回到主要活动。
我可以使用“Intent”来做到这一点,但我想在超时后用这个自动消失的对话框窗口来实现它。我怎样才能做到这一点。?请帮我解决这个问题。
提前致谢,
首先声明一个全局变量,用于Handler
从 更新 UI 控件Thread
,如下所示 -
Handler mHandler = new Handler();
现在创建一个Thread
并使用 while 循环使用线程的 sleep 方法定期执行任务。假设您有menu_bt
您的视图对象,从您显示/打开的位置popup window
比用于在定义的时间(即 10 秒)内没有点击时thread
自动关闭。popup window
这里mpopup
是 的对象PopupWindow
。
使用下面的代码在超时后消失对话框窗口(我用了 10 秒)。
希望它会帮助你。
menu_bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
View popUpView = getLayoutInflater().inflate(
R.layout.menu_popup, null); // inflating popup layout
mpopup = new PopupWindow(popUpView, 400,
LayoutParams.WRAP_CONTENT, true); // Creation of popup
mpopup.setAnimationStyle(android.R.style.Animation_Dialog);
mpopup.showAsDropDown(menu_bt, 50, -10);
Button btnOk = (Button) popUpView.findViewById(R.id.home);
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mpopup.dismiss(); // dismissing the popup with button click
}
});
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(10000);
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// automatic dismissing the popup after 10 seconds
mpopup.dismiss();
}
});
} catch (Exception e) {
// TODO: handle exception
}
}
}
}).start();
}
});