Обновление Android TextView - PullRequest
       0

Обновление Android TextView

7 голосов
/ 29 марта 2011

У меня есть простое приложение для Android, которое я хочу вывести на дисплей значение одного поля, принадлежащего другому классу.

Используя простое текстовое представление, я могу записать начальное значение поля, но я не знаю, как обновить текст на дисплее всякий раз, когда поле изменило значение.

Кстати, это мое первое приложение для Android, так что я все еще потерял

Вот мой код активности:

public class findIT extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    PositionHolder ph = new PositionHolder();
    TextView tv = new TextView(this);
    setContentView(tv);
    //this.updateText();
    tv.setText("You are at "  + ph.getPosition());
  }
}

Ответы [ 3 ]

11 голосов
/ 29 марта 2011

Вам необходимо создать TextView в формате XML следующим образом:

<TextView 
android:id="@id/textView01"
android:text="Enter your initial text "
android:layout_width="wrap content"
android:layout_height="wrap content"
></TextView>

Затем напишите следующее в вашем классе после функции setContentView ():

TextView textView = (TextView) findViewById(R.id.textView01);
textView.setText("Enter whatever you Like!");
3 голосов
/ 30 марта 2011

Крис .... Вот самый простой способ разработки приложения.Разделите проблему на три части.Презентация или просмотр.Алгоритм или модель.Контроллер, который реагирует на пользовательские и системные события.Это создает «разделение интересов», так что Контроллер владеет представлением и моделью.Вы создаете представление, используя xml, как в main.xml.Вы создаете отдельный класс для выполнения работы, скажем, MyModel.java, и, конечно, есть класс Controller или Activity, например, MyActivity.java.Таким образом, данные поступают из модели и отправляются в контроллер, который обновляет представление.

Итак, ваш вопрос в том, как получить данные из модели и обновить представление.Естественно, это будет происходить в контроллере, вашей активности.Самый простой способ сделать это - вставить кнопку в упражнение, а когда пользователь нажмет кнопку, вызвать model.getLatestData () и обновить представление.Это тянет данные.Следующий способ для контроллера - проверять наличие обновлений, скажем, каждую минуту.Это опрос для данных.Следующим способом является то, что Контроллер регистрирует интерес к изменениям в модели и бездействует, ожидая, пока модель сообщит об изменении, а затем обновит представление.Это асинхронная передача данных из модели в контроллер, и ее можно выполнить с помощью шаблона OBSERVER.

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

JAL

0 голосов
/ 29 марта 2011

Вам нужно будет определить макет в XML, затем при создании TextView вы свяжете его с layoutID.Что-то вроде:

TextView tv = (TextView) findViewById(R.id.something);

Я могу объяснить немного больше, если вам нужно, но это даст вам отправную точку для поиска дополнительных ответов.

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