Как обновить пользовательский интерфейс Android Activity из Alert Dialog - PullRequest
0 голосов
/ 05 февраля 2012

У меня есть Activity, чей макет находится в файле main.xml, который содержит TextView с идентификатором my_view и Button с идентификатором open_alert. Нажатие на кнопку откроет AlertDialog, который будет отклонен при нажатии ОК. После отмены AlertDialog мне нужно обновить значение TextView из действия.

Я не могу обновить значение TextView из действия.

Ответы [ 3 ]

3 голосов
/ 05 февраля 2012

Просто внедрите onClick слушатель положительной кнопки:

new AlertDialog.Builder(this)
  .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int whichButton)
     {
       TextView text = (TextView) v.findViewById(R.id.my_view);
       if (text != null)
       {
         text.setText("new text");
       }
     })
  .setNegativeButton(R.string.cancel, null).create().show();
1 голос
/ 05 февраля 2012

Один из способов - перезапустить действие на OnClickListener в вашем предупреждении. Если вы хотите передать значение в представление, просто добавьте дополнительный атрибут в намерение и сбросьте значение в TextView. Я отправил приблизительный код для справки.

alert.setNeutralButton("OK", new OnClickListener() {

        public void onClick(DialogInterface dialog, int which) {
            //create a new intent
            Intent intent = new Intent("YOUR ACTIVITY NAME");
            //add your value in the intent
            int value = //your value
            intent.putExtra("value",value );
                            //start your activity
            startActivity(intent);
        }
    });

и в вашей деятельности

Intent intent = getIntent();
yourTextView.setText(intent.getExtras().getString("value"));

Не знаю, является ли это наиболее эффективным способом сделать это, но оно должно работать.

0 голосов
/ 05 февраля 2012

Во-первых, вы должны убедиться, что атрибут android: editable присутствует в файле XML и для него установлено значение true для целевого TextView. Затем в методе onClick () вам просто нужно использовать setText ().

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