SetText на editText в адаптере страницы - PullRequest
0 голосов
/ 03 апреля 2012

Вот моя проблема: у меня есть страничный адаптер с 3 видами, левый используется для локализации пользователя и заполнения некоторых полей editText различными элементами локализованного адреса, вот метод:

    private boolean getAddressLocation(Location location) {

  if (location != null) {
   lat = location.getLatitude();
   longi = location.getLongitude();
   Geocoder gc = new Geocoder(NoteReminder.this, Locale.getDefault());
   try {
    List<Address> addresses = gc.getFromLocation(lat, longi, 1);
    if (addresses.size() > 0) {
         Address address = (Address) addresses.get(0);
         streetNumber = address.getAddressLine(0);
         locality = address.getLocality();
         postcode = address.getPostalCode();
         country = address.getCountryName();

         etCountry.setText(country, TextView.BufferType.EDITABLE);
         etPostcode.setText(postcode, TextView.BufferType.EDITABLE);
         etLocality.setText(locality, TextView.BufferType.EDITABLE);
         etAddressText.setText(streetNumber, TextView.BufferType.EDITABLE);



         return true;
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  return false;
}

Проблема в том, что мне бы хотелось, чтобы пользователь имел возможность редактировать текст редактирования, если локализация была недостаточно точной, НО, когда я редактировал эти поля, и что я возвращаюсь к своей основной деятельности (местоположение, на котором было Слева от моего адаптера страницы, этот находится посередине, а последний справа) У меня есть кнопка для сохранения всех данных из моей деятельности в моей базе данных SQLite ... Все работает нормально, но когда я изменяю поля eedditText адреса, которые были автоматически заполнены некоторым setText из местоположения адреса, значения, которые хранятся в моей базе данных, по-прежнему автоматически заполняются в полях моего editText ...

    ...
etCountry = (EditText) findViewById(R.id.etCountry);
    etPostcode = (EditText) findViewById(R.id.etPostcode);
    etLocality  = (EditText) findViewById(R.id.etLocality);
    etAddressText = (EditText) findViewById(R.id.etAddressText);


         display = etAddressText.getText() + "," + etLocality.getText() + "," + etPostcode.getText()
           + "," + etCountry.getText();
...

Я не понимаю? Означает ли это, что в начале editText заполняется .setText ("..."), мы больше не можем его модифицировать?

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Для проверки: вы, похоже, подразумеваете, что ваша строка "display" показывает старые данные. Это тот случай?

Вы ищете на правильной странице вашего PagerAdapter те функции findViewById (), когда вы хотите получить текст из EditTexts?

Используете ли вы FragmentPagerAdapter? Если ваши страницы пейджера являются фрагментами, вам может потребоваться передать информацию между ними по мере изменения их жизненного цикла.

0 голосов
/ 03 апреля 2012

Да, действительно, мой дисплей показывает старые данные,

Are you looking in the correct page of your PagerAdapter for those findViewById()s when     you want to get the text out of the EditTexts?

==> Я просто делаю простой

etCountry = (EditText) findViewById(R.id.etCountry);
etPostcode = (EditText) findViewById(R.id.etPostcode);
etLocality  = (EditText) findViewById(R.id.etLocality);
etAddressText = (EditText) findViewById(R.id.etAddressText);

с другой страницы моей страницы Адаптер

перед выполнением моего "getText", и я не использую FragagePageAdapter, а просто pageAdapter

...