簡體   English   中英

為什么我的警報對話框沒有出現?

[英]Why does my alert dialog not appear?

有人可以幫我嗎? 當我單擊按鈕時,什么也沒有發生。 我對android編程非常陌生,所以請回答,因為我能理解。

(不要懷疑我的變量)

謝謝

@Override
public void onClick(View v) {

    Button preis = (Button) findViewById(R.id.essenpreis);
    preis.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            // Creating alert Dialog with one Button

            AlertDialog.Builder alertDialog = new AlertDialog.Builder(options.this);

            // Setting Dialog Title
            alertDialog.setTitle("Essenspreis");

            // Setting Dialog Message
            alertDialog.setMessage("Neuen Preis eintragen:");

            // Setting Icon to Dialog
            // alertDialog.setIcon(R.drawable.tick);

            // Setting OK Button
            alertDialog
                .setPositiveButton("YES", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int which) {

                            // Write your code here to execute after dialog closed
                        Toast.makeText(getApplicationContext(),"Preis geändert!", Toast.LENGTH_SHORT).show();
                        }
                    });

            // Showing Alert Message
            alertDialog.show();

        }
    });
  }                 
}

按鈕的clicklistener是在onClick界面的方法主體內定義的,這就是對話框未顯示的原因,

這是顯示警告對話框的方法

           Button preis = (Button) findViewById(R.id.essenpreis);

        // add button listener
        preis.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                context);

            // set title
            alertDialogBuilder.setTitle("Your Title");

            // set dialog message
            alertDialogBuilder
                .setMessage("Click yes to exit!")
                .setCancelable(false)
                .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, close
                        // current activity
                        MainActivity.this.finish();
                    }
                  })
                .setNegativeButton("No",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, just close
                        // the dialog box and do nothing
                        dialog.cancel();
                    }
                });

                // create alert dialog
                AlertDialog alertDialog = alertDialogBuilder.create();

                // show it
                alertDialog.show();
            }
        });
    }

請注意,在執行第一個onClick方法之后,您要將偵聽器設置為ID為R.id.essenpreis按鈕,請檢查是否將該click listener器分配給任何人,如果您從第一個onClick提取button設置,則代碼會工作

        Button preis = (Button) findViewById( android.R.id.button1 );
        preis.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                // Creating alert Dialog with one Button

                AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this );

                // Setting Dialog Title
                alertDialog.setTitle("Essenspreis");

                // Setting Dialog Message
                alertDialog.setMessage("Neuen Preis eintragen:");

                // Setting Icon to Dialog
                // alertDialog.setIcon(R.drawable.tick);

                // Setting OK Button
                alertDialog
                    .setPositiveButton("YES", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int which) {

                                // Write your code here to execute after dialog closed
                            Toast.makeText(getApplicationContext(),"Preis geändert!", Toast.LENGTH_SHORT).show();
                            }
                        });

                // Showing Alert Message
                alertDialog.show();

            }
        }); 

我假設options.java是您的主要源文件。

如果您已使用XML創建布局,則請為按鈕提供id為:

android:id = "@+id/button1"

如果尚未創建任何布局,請在res文件夾中創建一個文件main.xml ,如下所示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/buttonAlert"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Show Alert Box" />

</LinearLayout>

現在,在活動中,我想這里是代碼中的Options.java。

onCreate方法中,編寫以下代碼:

Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            options.this);

        // set title
        alertDialogBuilder.setTitle("Essenspreis");

        // set dialog message
        alertDialogBuilder
            .setMessage("Neuen Preis eintragen:")
            .setCancelable(false)
            .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, close

                }
              })
            .setNegativeButton("No",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, just close

                }
            });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM