2012-04-02 24 views
0

Hier ist mein Problem: Ich habe einen pageadapter mit 3 Ansichten, der linke wird verwendet, um den Benutzer zu lokalisieren und füllen Sie some editText Felder mit den verschiedenen Elementen der Adresse, die hier lokalisiert wurde die Methode ist:SetText auf einem editText in einem pageadapter

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; 
} 

das Problem ist, dass ich der Benutzer die editText der Lage sein, bearbeiten möchte, wenn die Lokalisierung nicht präzise genug ist, aber wenn ich diese Felder bearbeiten und dass ich wieder zu meiner Haupttätigkeit (der Ort eine der auf der linken Seite meines Pageadapter war, ist dies eine in der Mitte und die letzte ist die richtige) ich habe eine Schaltfläche alle aus meiner Tätigkeit, die Daten zu speichern, in meine SQLite-Datenbank ... alles funktioniert gut, aber wenn ich den eedditText fi modifiziere Felder der Adresse, die mit einigen setText von der Adressstelle automatisch ausgefüllt wurden die Werte, die in meiner Datenbank sind nach wie vor in den Bereichen meines editText die automatisch ausgefüllt gespeichert ...

... 
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(); 
... 

I don t verstehen? Bedeutet das, dass onces der editText mit einem .setText ("...") gefüllt ist, können wir das nicht mehr ändern?

Antwort

1

Um zu überprüfen: Sie scheinen Ihre Zeichenfolge „Anzeige“ zu was impliziert, dass die alten Daten angezeigt wird. Ist das der Fall?

Suchen Sie in der richtigen Seite Ihrer PagerAdapter für die findViewById() s, wenn Sie den Text aus dem EditTexts zu bekommen?

Verwenden Sie einen FragmentPagerAdapter? Wenn Ihre Pager-Seiten Fragmente sind, müssen Sie möglicherweise die Informationen zwischen ihnen austauschen, wenn sich ihre Lebenszyklen ändern.

+0

ja in der Tat, mein String Display showin mit ist g die alten Daten – Karly

0

ja in der Tat, ist mein String Display die alten Daten, die zeigen,

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? 

==> ich nur eine einfache

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

von einer anderen Seite meiner Pageadapter

, bevor Sie meine „getText“ und im nicht fragmentPageAdapter aber ein einfaches Pageadapter

+0

Poblem gelöst !! ;-) danke trotzdem nur einige .getEditableText() anstelle von gettext zu verwenden, hatte – Karly

+0

u kann sagen, wie u aufgelöst i auch gleiche Frage, die sich m ... – Erum

Verwandte Themen