我想显示一个对话框/弹出窗口,其中显示一条消息,显示"您确定要删除此条目吗?" 用一个按钮说"删除".当Delete被触摸时,应该删除该条目,否则什么都没有.
我为这些按钮编写了一个单击侦听器,但是如何调用对话框或弹出窗口及其功能?
我有一个EditText输入对话框.当我单击对话框上的"是"按钮时,它将验证输入,然后关闭对话框.但是,如果输入错误,我想保持在同一个对话框中.每次无论输入是什么,当我点击"否"按钮时,对话框应自动关闭.我怎么能禁用它?顺便说一句,我已经使用PositiveButton和NegativeButton作为对话框上的按钮.
android dialog android-alertdialog android-dialog android-dialogfragment
我的程序在后台线程中执行一些网络活动.在开始之前,它会弹出一个进度对话框.该对话框在处理程序上被关闭.这一切都很好,除非在对话框启动时屏幕方向发生变化(后台线程正在运行).此时,应用程序崩溃或死锁,或进入一个奇怪的阶段,在应用程序完全无法工作之前,直到所有线程都被杀死.
如何优雅地处理屏幕方向变化?
下面的示例代码大致匹配我的真实程序:
public class MyAct extends Activity implements Runnable {
public ProgressDialog mProgress;
// UI has a button that when pressed calls send
public void send() {
mProgress = ProgressDialog.show(this, "Please wait",
"Please wait",
true, true);
Thread thread = new Thread(this);
thread.start();
}
public void run() {
Thread.sleep(10000);
Message msg = new Message();
mHandler.sendMessage(msg);
}
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mProgress.dismiss();
}
};
}
Run Code Online (Sandbox Code Playgroud)
堆:
E/WindowManager( 244): Activity MyAct has …Run Code Online (Sandbox Code Playgroud) 我想创建一个自定义对话框,如下所示

我尝试过以下的事情.
我创建了AlertDialog.Builder的子类,并使用了自定义标题和自定义内容视图并使用了它,但结果并不像预期的那样.
另一种尝试是继承DialogFragment并在onCreateDialog中自定义对话框,但结果不是预期的.
然后我尝试使用普通的Dialog类.结果并不像预期的那样.
在所有三种情况下,问题是当我忽略标题视图时,对话框的大小不是预期的,当我使用标题视图时,结果是内容视图周围有一个粗边框(实际上看起来很糟糕).现在我脑子里有两个问题......
我怎样才能做到这一点?由于我已经尝试了很多东西,因此我们将更加赞赏直接的答案.
在Android应用程序中显示错误或警告对话框的最佳方法是什么?
编辑 Android开发人员文档建议我们应该使用DialogFragments或Dialogs向用户显示错误/警报消息.但有一次他们说......
提示:如果需要自定义对话框,则可以将"活动"显示为对话框,而不是使用"对话框API".只需创建一个活动,并将其主题设置为清单元素中的Theme.Holo.Dialog.
那是什么意思?使用Activity只是为了显示错误消息是不是太多了?
我正在尝试打开一个对话框窗口,但每次我尝试打开它都会抛出此异常:
Uncaught handler: thread main exiting due to uncaught exception
android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not for an application
at android.view.ViewRoot.setView(ViewRoot.java:460)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:238)
at android.app.Activity.showDialog(Activity.java:2413)
Run Code Online (Sandbox Code Playgroud)
我是通过showDialog显示器的id 调用来创建的.该onCreateDialog处理器记录良好,我可以通过它没有问题的一步,但因为它看起来像我想的东西我已经把它贴吧:
@Override
public Dialog onCreateDialog(int id)
{
Dialog dialog;
Context appContext = this.getApplicationContext();
switch(id)
{
case RENAME_DIALOG_ID:
Log.i("Edit", "Creating rename dialog...");
dialog = new Dialog(appContext);
dialog.setContentView(R.layout.rename);
dialog.setTitle("Rename " + noteName);
break;
default:
dialog = null;
break;
}
return dialog;
}
Run Code Online (Sandbox Code Playgroud)
这有什么不足之处吗?有些问题在创建对话框时已经讨论过这个问题onCreate …
android runtimeexception android-dialog android-windowmanager
我一直试图表现出"你想退出吗?" 用户尝试退出活动时的对话框类型.
但是我找不到合适的API挂钩. Activity.onUserLeaveHint()最初看起来很有希望,但我找不到阻止活动完成的方法.
我有一个名为Activity的whereActity子对话框.现在,我想将此活动显示为另一个活动的对话框.
我怎样才能做到这一点?

谷歌建议我们使用DialogFragment而不是简单Dialog的使用Fragments API,但使用隔离DialogFragment的简单的是 - 否确认消息框是荒谬的.在这种情况下,最佳做法是什么?
android android-fragments android-dialog android-dialogfragment
如何从Android中的对话框中删除黑色背景.图片显示了问题.

final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
Run Code Online (Sandbox Code Playgroud) 我指定我DialogFragment的布局在XML布局文件(让我们称之为layout_mydialogfragment.xml),它layout_width和layout_height属性,特别是(为100dp每个假设).然后我在DialogFragment的onCreateView(...)方法中扩充这个布局,如下所示:
View view = inflater.inflate(R.layout.layout_mydialogfragment, container, false);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我发现当我的对话框(DialogFragment)出现时,它不尊重layout_width和layout_height在其xml布局文件中指定(并且我的对话框根据内容收缩或扩展可变).任何人都知道我是否或如何让我的对话框尊重layout_width和layout_height在其xml布局文件中指定?目前我必须在DialogFragment的onResume()方法中再次指定对话框的宽度和高度,如下所示......
getDialog().getWindow().setLayout(width, height);
Run Code Online (Sandbox Code Playgroud)
...因此,不可取的是,必须记住在两个地方对对话框的宽度和高度进行任何改进.
android android-fragments android-dialog android-dialogfragment