Создайте статический член в своем классе Activity. Затем назначьте значение во время onPostExecute
Например, если результат вашей AsyncTask является строкой, создайте в своей активности статическую строку public
public static String dataFromAsyncTask;
Затем в onPostExecute
AsyncTask просто сделайте статический вызов вашему основному классу и установите значение.
MainActivity.dataFromAsyncTask = "result blah";
Существует довольно хорошая схема в спецификация JSF, которая показывает жизненный цикл запроса - важный для понимания этого материала.
шаги:
Это - несколько упрощенная версия событий. Обратитесь к спецификации для получения дополнительной информации.
я подверг бы сомнению, почему Вы пишете свой собственный UIComponent. Это - нетривиальная задача, и глубокое понимание архитектуры JSF требуется, чтобы разбираться в ней. При необходимости в пользовательском элементе управления лучше создать конкретное управление, которое расширяется, exisiting UIComponent (как HtmlInputText делает) с эквивалентным рендерером.
, Если загрязнение не является проблемой, существует реализация JSF с открытым исходным кодом в форме Apache MyFaces.
Слушателей действия, такой что касается Кнопка , звонят во время эти , Вызывают фазу Application , которая является последней фазой перед финалом Ответ Рендеринга фаза. Это показывают в Жизненный цикл JSF - рисунок 1 .
Это - единственная платформа, которую я когда-либо использовал, где создание компонента является глубоким сложным процессом как это. Ни одна из других веб-платформ (ли в .net мире или не) не делает это настолько болезненным, который абсолютно необъясним мне.
Некоторые проектные решения позади JSF начинают иметь немного больше смысла, когда Вы рассматриваете цели. JSF был разработан, чтобы быть оснащенным - он представляет много метаданных для IDE. JSF не является веб-платформой - это платформа MVP , которая может использоваться в качестве веб-платформы. JSF очень расширяем и настраивается - можно заменить 90% реализации на основе на приложение.
большая часть этого материала просто делает Ваше задание более сложным, если все, что Вы хотите сделать, закрадываются в дополнительное управление HTML.
компонент является составом нескольких inputtext (и другой) основные компоненты, btw.
я предполагаю, что фрагменты страницы JSP-includes/tooling-based не отвечают Вашим требованиям.
я рассмотрел бы использование Вашего UIComponentELTag.createComponent для создания составного элемента управления с основой UIPanel и создающий всех ее детей из существующих реализаций. (Я предполагаю, что Вы используете JSPs/taglibs и высказываете несколько других предположений.) Вы, вероятно, хотели бы пользовательский рендерер, если бы ни один из существующих рендереров UIPanel не сделал задание, но рендереры легки.
Лучшая статья, которую я нашел, Компонент Jsf, Пишущий , что касается 2, где я читаю значение для привязки значения в Вашем компоненте, у Вас есть метод get, который похож на это
public String getBar() {
if (null != this.bar) {
return this.bar ;
}
ValueBinding _vb = getValueBinding("bar");
return (_vb != null) ? (bar) _vb.getValue(getFacesContext()) : null;
}
, как это входило в getValueBinding? В Вашем классе тега setProperties метод
if (bar!= null) {
if (isValueReference(bar)) {
ValueBinding vb = Util.getValueBinding(bar);
foo.setValueBinding("bar", vb);
} else {
throw new IllegalStateException("The value for 'bar' must be a ValueBinding.");
}
}