Android: вызовите слушателя вручную из кода Java - PullRequest
0 голосов
/ 28 марта 2012

Есть ли способ вызвать слушателя вручную из кода?

Дополнительная справочная информация: я использую Spinner и DatePicker. С помощью Spinner вы можете выбрать причину для того, чтобы оставаться дома (может быть, вы заболели, может быть, у вас отпуск), а с помощью DatePicker вы можете выбрать дату, в течение которой вы не будете доступны. С этими двумя частями информации я строю строку для TextView и показываю те же данные в компактном виде. Процесс сборки строки задается некоторыми слушателями, которые распознают изменения на одном из двух элементов управления, строят и настраивают новую строку. Если я запускаю программу и читаю некоторые данные с сервера, строка не будет собрана (очевидно, потому что ничего не изменилось и не будет вызван ни один слушатель).

Обходной путь - построить строку моим собственным onLoaddata() методом. Но я думаю, что было бы более гладким способом вызвать одного слушателя, чтобы создать для меня строку. Я также могу «вызвать» слушателя, если я просто сделаю какую-нибудь фальшивку .updateDate, но я не думаю, что это хорошая идея - создавать бесполезные вызовы ...

Может, у кого-нибудь из вас есть хорошая подсказка для меня?

1 Ответ

0 голосов
/ 28 марта 2012

Используйте следующий шаблон :

public class YourActivity extends Activity implements OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ...

        // Some initialization here
        findViewById(R.id.some_button).setOnClickListener(this);

        ...

        // Here you want to update your view
        updateTextView();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {

        case R.id.some_button:
            // Here you also want to update your view
            updateTextView();
            break;

        ...

        }
    }

    private void updateTextView() {
        // Here you update your view
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...