翻了很多帖 加了权限仍然不好用的看过来~~~最后的解决方案记录一下
下面是view的长按点击事件:(实现长按控件弹出弹窗)
holder.view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
alertDialog = new AlertDialog.Builder(context).create();//new dialog
//····↓····
if (Build.VERSION.SDK_INT >= 25) {
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
}else {
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}
//····↑·····
showalertDialog();//dialog的show函数
return true;
}
});
下面是dialog的show函数:
public void showalertDialog() {
alertDialog.setTitle("标题");
alertDialog.setMessage("具体文本");
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println("否");
}
});
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println("是");
}
});
alertDialog.show();
}
上述部分重点代码就是
//····↓···
if (Build.VERSION.SDK_INT >= 25) {
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY);
}else {
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}
//····↑·····
博客记录了一个在Android中实现长按视图显示弹窗的问题解决方案。通过设置不同的对话框窗口类型,适配不同Android版本,确保在API 25及以上版本使用TYPE_APPLICATION_OVERLAY,在更低版本上使用TYPE_SYSTEM_ALERT。详细代码示例展示了如何在长按事件中创建并显示AlertDialog。
6669

被折叠的 条评论
为什么被折叠?



