Индивидуальный диалог Android - PullRequest
1 голос
/ 25 февраля 2012

Я пытаюсь показать настраиваемый диалог.Этот диалог содержит 3 текста редактирования и один таймер.Я хочу показать это диалоговое окно, когда нажимаю кнопку на экране.Я посмотрел учебник Google и попытаться написать код.Однако, когда я использовал корневой макет в инфляторе в качестве макета, в котором нажимается кнопка, он добавляет диалог под кнопкой.Когда я использовал корневой макет в dialog_xml, кнопка не работает.Часть этого кода ниже.Есть ли у вас какие-либо идеи, как я могу сделать это правильно?

    Button ekleButton;
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.haphatirlatici);

       // After creating the activity setting other things for running
       ekleButton = (Button) findViewById(R.id.EkleButton);
       ekleButton.setOnClickListener(new View.OnClickListener() {   
       public void onClick(View v) {
            // TODO Auto-generated method stub
            // Dialog icin yerlesimler

        AlertDialog.Builder builder;
        AlertDialog alertDialog;

        Context mContext = getApplicationContext();
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.ekle_dialog,
                                       (ViewGroup) findViewById(R.id.Ekle_Layout));

        builder = new AlertDialog.Builder(mContext);
        builder.setView(layout);
        alertDialog = builder.create();

        }
    });

После этого я редактирую код и добавляю две кнопки.Я хочу, чтобы результат диалога оповещения отображался в активности.Код, который я пишу, находится ниже.

публичный класс HapHatirlatici расширяет действие {

Button ekleButton;
boolean eklendiMi;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.haphatirlatici);

    // After creating the activity setting other things for running
    ekleButton = (Button) findViewById(R.id.EkleButton);
    eklendiMi = false;
    ekleButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // TODO Auto-generated method stub

        View layout = getLayoutInflater().inflate(R.layout.ekle_dialog, null);                               
        AlertDialog.Builder builder = new AlertDialog.Builder(HapHatirlatici.this);
        builder.setPositiveButton(R.string.ekle,new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                eklendiMi = true;
           }
        });
        builder.setNegativeButton(R.string.vazgec, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                eklendiMi = false;
           }
        });
        builder.setView(layout);
        AlertDialog alertDialog = builder.create();
        alertDialog.setTitle("Ilac Ekleme");
        alertDialog.show();


        }
    });
}
public boolean databaseEkle()
{
    boolean sonuc = false;
    return sonuc;
}

 }

1 Ответ

1 голос
/ 25 февраля 2012

Вы забыли alertDialog.show();, чтобы отобразить диалоговое окно, которое вы только что создали.

Кроме того, ваш код может быть упрощен:

Button ekleButton;
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.haphatirlatici);

   // After creating the activity setting other things for running
   ekleButton = (Button) findViewById(R.id.EkleButton);
   ekleButton.setOnClickListener(new View.OnClickListener() {   
       public void onClick(View v) { 
           View layout = getLayoutInflater().inflate(R.layout.ekle_dialog, null);                               
           AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityClass.this);
           builder.setView(layout);
           AlertDialog alertDialog = builder.create();

           // this is what you forgot:
           alertDialog.show();
       }
    });
}

Конечно, замените YourActivityClass своим реальным названием деятельности.

...