在Android警报对话框中:dialog.getButton不可用 如何在laert对话框中更改Positive按钮的背景
答案 0 :(得分:5)
你需要在之后写下来 dialog.show();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(NewApplication.this);
alertDialogBuilder.setCancelable(false).setNegativeButton("Yes",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
alertDialog.getButton(Dialog.BUTTON_NEGATIVE).
setBackgroundColor(Color.parseColor("#3399ff"));
答案 1 :(得分:1)
答案 2 :(得分:0)
首先,
'
`DialogInterface.OnClickListener`'
监听器 - 不能为NULL。
第二,确保您导入了正确的Android类,其中有很多,有些是特定于版本的。 例如:
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.DataSetObserver;
import android.os.Handler;
import android.util.Log;
以下是Java中快速而脏的代码示例,演示了应用程序所需的一些特殊Android导入的使用。请记住,Android会使用许多特殊的类和对象。
final AlertDialog d = new AlertDialog.Builder(this)...create();
//final Button b1 = d.getButton(Dialog.BUTTON_POSITIVE);
editName.addTextChangedListener(new TextWatcher() //
{
public void afterTextChanged(Editable ed) {
Button b1 = d.getButton(Dialog.BUTTON_POSITIVE);
//comment out sections that may or may not work //
b1.setEnabled(ed.length() > 0);
private static final class [More ...] ButtonHandler extends Handler {
// Button clicks have Message.what as the BUTTON{1,2,3} constant//
private static final int MSG_DISMISS_DIALOG = 1;
private WeakReference<DialogInterface> mDialog;
public void // whatever classes you want //
ButtonHandler(DialogInterface dialog) {
mDialog = new WeakReference<DialogInterface>(dialog);
}
使用覆盖在新部分中设置替换按钮或新按钮消息。这是为新功能使用相同按钮定位的一种方法。例如:
@Override
public void [More ...]
handleMessage(Message msg) {
switch (msg.what) {
case DialogInterface.BUTTON_POSITIVE:
case DialogInterface.BUTTON_NEGATIVE:
case DialogInterface.BUTTON_NEUTRAL:
((DialogInterface.OnClickListener)
msg.obj).onClick(mDialog.get(), msg.what);
break;
case MSG_DISMISS_DIALOG:
((DialogInterface) msg.obj).dismiss();
}
希望这有助于回答您的问题。
代码说明仅用于说明,它不是实际代码,您需要自己编写。
作为补充说明:如果您使用的是eclipse或其他GUI界面,则往往会添加许多额外的和不必要的代码。尝试使用Notepad ++等文本编辑器进行编码,您会发现它更干净,更流畅。
答案 3 :(得分:0)
尝试自定义提醒对话框
public class MainActivity extends AppCompatActivity { Dialog alertDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView=(TextView) findViewById(R.id.text); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { alertDialog=new Dialog(MainActivity.this); alertDialog.setContentView(R.layout.dialog); alertDialog.show(); } }); } }
user_info.csv