Question

Quelqu'un peut-il me expliquer pourquoi cette plante AlertDialog?

package com.clicker;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class Clicker extends Activity
{
    public int clickerNumber = 0;
    private TextView clickerText;
    private Button clickerButton;
    private Button resetButton;

    // Called when the activity is first created.
    @SuppressWarnings("null")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Declare each of the layout objects
        clickerText = (TextView)findViewById(R.id.clickerText);
        clickerButton = (Button)findViewById(R.id.clickerButton);
        resetButton = (Button)findViewById(R.id.resetButton);

        clickerText.setText("0");

        final AlertDialog.Builder resetQuestion = null;
        resetQuestion.setTitle("Reset?");
        resetQuestion.setMessage("Are you sure you want to reset the counter?");

        resetQuestion.setPositiveButton("Yes", new OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                    clickerNumber = 0;
                    clickerText.setText("0");
            }

        });

        resetQuestion.setNegativeButton("No", new OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                dialog.dismiss();
            } 

        });

        clickerButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                clickerNumber++;
                clickerText.setText(Integer.toString(clickerNumber));
            }
        });

        resetButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                resetQuestion.show();
            }

        });
    };
};
Était-ce utile?

La solution

Ceci est un échec:

final AlertDialog.Builder resetQuestion = null;
resetQuestion.setTitle("Reset?");

Vous essayez d'utiliser un objet nul, et que (bien sûr) va lancer une NullPointerException

Voici comment je crée des boîtes de dialogue (et je pense que c'est la meilleure façon de le faire):

LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.dialogo_layout, null);
final AlertDialog.Builder resetQuestion = new AlertDialog.Builder(YourActivity.this)
// do whatever you want with the resetQuestion AlertDialog

Ici, R.layout.dialogo_layout représente un fichier appelé dialogo_layout.xml dans le répertoire de res/layout qui contient la mise en page de dialogue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top