我打算用layout_weight = 1创建3个按钮,对自定义对话框不感兴趣.所以我写了下面的代码.它不工作.总是是按钮给我null.这段代码怎么了?
AlertDialog dialog= new AlertDialog.Builder(this).create();
dialog.setIcon(R.drawable.alert_icon);
dialog.setTitle("title");
dialog.setMessage("Message");
dialog.setButton(AlertDialog.BUTTON_POSITIVE,"Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
Button yesButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
Log.w("Button",""+yesButton);//here getting null
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f);
yesButton.setLayoutParams(layoutParams);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
此致,Android开发人员.
我一直在寻找关于如何正确扩展AlertDialogs并获得预期行为的例子,但我几乎找不到任何东西.
谷歌上的文档也没有多说.
是的,我知道我可以使用AlertDialog.Builder来构建最常见的东西,但由于某些原因,我想创建自己的AlertDialogs(我想要的代码包含在单独的java文件中,原因之一).
我创建了我的PausDialog.java(参见下面的代码),它显示但我无法获得标题或任何按钮(正面,负面等)以显示在对话框中.看这张图:

那么,问题1:我在哪里可以找到关于如何正确扩展AlertDialogs以及之后如何使用它们的好的,干净的和有用的示例
问题2:为什么我不能使用下面的自定义AlertDialog看到标题或任何按钮?
PausDialog.java
package Test;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.SystemClock;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class PausDialog extends AlertDialog
{
protected PausDialog(Context context)
{
super(context, R.style.DialogTheme);
}
@Override
protected void onCreate(android.os.Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.paus);
WindowManager.LayoutParams params = getWindow().getAttributes();
params.gravity = Gravity.TOP;
final …Run Code Online (Sandbox Code Playgroud)