簡體   English   中英

警報對話框出現問題,因為它無法識別警報對話框的啟動

[英]issue with alert dialog box, due to it not recognizing the initiation of the alert box

我正在嘗試創建一個對話框,單擊該圖像時將顯示該對話框,但是我的代碼似乎存在一些問題。 代碼如下所示。 我已經完成了對話框的導入,但是似乎不起作用,因為在啟動新對話框時出現錯誤。

 ImageButton ib = (ImageButton)findViewById(R.id.imageButton1);
    ib.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
             AlertDialog ad = new AlertDialog.Builder(this)
            .setMessage("Blah blah blah.\n Fine pring.\n Do you accept all our terms and conditions?")
            .setIcon(R.drawable.ic_launcher)
            .setTitle("Terms of Service")
            .setNeutralButton("back", this)
            .setCancelable(false)
            .create();

            ad.show();
        }
    });

問題是您在網上this的引用

AlertDialog ad = new AlertDialog.builder(this)

實際上是指不擴展Context的匿名內部類View.OnClickListener 所以,就在您的上方

ib.setOnClickListener(new View.OnClickListener() {

使某事生效

final Context context = this;

然后將aforemention builder調用更改為read

AlertDialog ad = new AlertDialog.builder(context)

ImageButton ib = (ImageButton)findViewById(R.id.imageButton1);
final Context context = this;
ib.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
         AlertDialog ad = new AlertDialog.Builder(context)
        .setMessage("Blah blah blah.\n Fine pring.\n Do you accept all our terms and conditions?")
        .setIcon(R.drawable.ic_launcher)
        .setTitle("Terms of Service")
        .setNeutralButton("back", this)
        .setCancelable(false)
        .create();

        ad.show();
    }
});

而且我(也許是崇高的)假設是,該代碼塊確實駐留在實際上擴展了Context的類中。

暫無
暫無

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

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