Android警报对话框按钮背景

时间:2015-08-01 14:26:37

标签: dialog alert

在Android警报对话框中:dialog.getButton不可用 如何在laert对话框中更改Positive按钮的背景

4 个答案:

答案 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)

我认为此前已经解决了此问题,IRC。

检查先前在类似问题上发布的这些答案:

Android Button modify Question.

那里有很好的链接和答案。

答案 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