在pageadapter中的editText上设置SetText

时间:2012-04-02 21:30:04

标签: android android-edittext android-viewpager settext

这是我的问题:我有一个包含3个视图的pageadapter,左边一个用于本地化用户,并使用本地化的地址的不同元素填充一些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;
}

问题在于我希望用户能够编辑editText,如果本地化不够精确但是当我编辑那些字段并且我回到我的主要活动时(位置一个是关于我的pageadapter的左边,这个位于中间,最后一个是右边的)我有一个按钮将我的活动中的所有数据保存到我的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 个答案:

答案 0 :(得分:1)

验证:您似乎暗示您的字符串“display”显示旧数据。是这样的吗?

当您想要从EditTexts中获取文本时,您是否正在查找PageViewAdapter的正确页面中的findViewById()?

您使用的是FragmentPagerAdapter吗?如果您的寻呼机页面是片段,您可能需要在它们的生命周期发生变化时在它们之间传递信息。

答案 1 :(得分:0)

确实如此,我的字符串显示正在显示旧数据,

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?

==&GT;我只是做一个简单的

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

来自pageAdapter的另一页

在做“getText”之前,我没有使用fragmentPageAdapter而是使用简单的pageAdapter