Как получить значение из настраиваемого диалогового окна для основной деятельности в приложении Android - PullRequest
0 голосов
/ 27 июля 2011

в моей деятельности, когда пользователь щелкает текстовое представление, открывается пользовательское диалоговое окно. Здесь я установил несколько сборщиков колес. Значение, которое пользователь устанавливает в средстве выбора колес, отображается в качестве заголовка в настраиваемом диалоговом окне. Когда пользователь нажимает кнопку «ОК», диалоговое окно закрывается, и я хочу, чтобы этот текст заголовка отображался в текстовом представлении моей основной деятельности.

Я знаю, что мы можем установить инициализацию переменной в нашем классе деятельности и установить ее значение в диалоговом окне, ничего особенного. Но я написал диалоговое окно Custom как отдельный файл класса следующим образом

bd = (TextView)findViewById(R.id.editText1);
        bd.setOnClickListener(new OnClickListener() 
        {   
            @Override
            public void onClick(View v) 
            {
                CustomizeDialog customizeDialog = new CustomizeDialog(main.this);
                customizeDialog.show();
            }
        });    

Как получить значение из этого класса в мой основной класс деятельности ...

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Создайте обработчик в своей Деятельности и передайте его в диалог, который выполнит эту работу.Примерно так:

Handler mHandler = new Handler()
{
    public void handleMessage(android.os.Message msg)
    {
        super.handleMessage(msg);

        switch (msg.what)
        {
        case 1:
            // Do some stuff
            break;
        }
    }
}

Теперь передайте этот объект-обработчик

CustomizeDialog customizeDialog = new CustomizeDialog(main.this, mHandler);
customizeDialog.show();

Когда вы хотите установить какое-либо значение, отправьте его с помощью этого объекта-обработчика

0 голосов
/ 27 июля 2011

Я нашел лучший способ, в своей основной деятельности я назначил TextView как

public static TextView bd;

В моем классе CustomizeDialog, когда я инициализировал переменную следующим образом

static String bdDate;

Когда я нажимаю кнопку «ОК», чтобы закрыть диалоговое окно «Пользовательский», я записываю как

close.setOnClickListener(new View.OnClickListener()
         {  
            @Override
            public void onClick(View v) 
            {
                  if (v == close)
                  bdDate = wheelMenu3[getWheel(R.id.p3).getCurrentItem()];
                  main.bd.setText(bdDate);
                  dismiss();
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...