Передача данных из диалога в действие, которое создано - PullRequest
0 голосов
/ 26 февраля 2012

Я пытаюсь получить одну строку, два целых числа и один указатель времени из диалога в действие, где этот диалог создан.Как я могу передать эту информацию этой деятельности?Ниже приведен мой код.

package ilachatirlatici.pack.net;

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

public class HapHatirlatici extends Activity{

Button ekleButton;
boolean eklendiMi;
EditText ilacAdi;
String ilacAdiString;
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;
    ilacAdiString = "";
    ekleButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // TODO Auto-generated method stub
        ilacAdi = (EditText) findViewById(R.id.KayitAdiEditText);
        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;
                ilacAdiString =  ilacAdi.getText().toString();
                //ilacAdiString = ilacAdi.getEditableText().toString();
                databaseEkle(eklendiMi, ilacAdiString);
           }
        });
        builder.setNegativeButton(R.string.vazgec, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                eklendiMi = false;
                databaseEkle(eklendiMi, "");
           }
        });
        builder.setView(layout);
        AlertDialog alertDialog = builder.create();
        alertDialog.setTitle("Ilac Ekleme");
        alertDialog.show();


        }
    });
}
public boolean databaseEkle(boolean eklemeVarMi, String ilacAdi)
{
    boolean sonuc = false;
    System.out.println(ilacAdi);
    return sonuc;
}

}

Я пытаюсь получить результат в положительной части кнопки.Я реализовал только строковую часть.Так как остальные части будут такими же.Как я могу передать эту строку в функцию databaseEkle()?

1 Ответ

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

Вы на самом деле пытаетесь получить доступ к EditText, который на самом деле находится внутри макета AlertDialog R.layout.ekle_dialog .Вам нужно сослаться на свой раздутый макет, чтобы сослаться на текст редактирования.

установить прослушиватель onClick вашей кнопки следующим образом:

ekleButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
    // TODO Auto-generated method stub

    View layout = getLayoutInflater().inflate(R.layout.ekle_dialog, null);
    EditText myEditText = (EditText) layout.findViewById(R.id.KayitAdiEditText);
    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;
            ilacAdiString =  myEditText.getText().toString();
            //ilacAdiString = ilacAdi.getEditableText().toString();
            databaseEkle(eklendiMi, ilacAdiString);
       }
    });
    builder.setNegativeButton(R.string.vazgec, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            eklendiMi = false;
            databaseEkle(eklendiMi, "");
       }
    });
    builder.setView(layout);
    AlertDialog alertDialog = builder.create();
    alertDialog.setTitle("Ilac Ekleme");
    alertDialog.show();


    }
});

в этом примере я использую myEditText вместо ilacAdi потому что вы объявили свой editText глобальным, который не должен быть в этом случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...