2013-03-30 21 views
7

Merhaba. Ne olduğunu bilmiyorum. Bir DialogFragment oluştururken bir EditText metnini değiştirmeye çalışıyorum, ancak EditText metni güncelleştirmiyor. getText().length()'u ararsam, EditText içeriğinin değiştiğini fark ettim. Ama görsel aynı kalıyor, sadece boş.Android EditText setText metni güncellemeden kaldırma

Neden? peşin insanlar İşte

yılında

Teşekkür kodudur:

public class ItemNameDialog extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(final Bundle bundle) { 
     System.out.println("ON CREATE DIALOG WAS CALLED"); //This appears on LogCat, so this method is called.. the problem is not that 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setTitle("Configure an item to count:"); 

     LayoutInflater inflater = getActivity().getLayoutInflater(); 

     View view = inflater.inflate(R.layout.itempick_layout, null); 
     builder.setView(view); 

     final CheckBox box = (CheckBox) view.findViewById(R.id.itemSenseCheckBox); 
     final EditText itemNameBox = (EditText) view.findViewById(R.id.itemNameText); 
     final Spinner spinner = (Spinner) view.findViewById(R.id.itemsDefault); 
     final int viewIDClicked = getArguments().getInt(clickableViewID); 
     final String actualName = getArguments().getString(actualNameItemView); 

     System.out.println("H - before: " + itemNameBox.getText().toString().length()); //it appears on logcat "H - before: 0" 
     itemNameBox.setText(actualName); 
     System.out.println("H - after: " + itemNameBox.getText().toString().length()); //it appears on logcat "H - before: 3" so why not changing ? 

     return builder.create(); 
    } 
} 
+2

EditText –

+0

hiç Yardım arkadaşı yazı tipinin rengini değiştirmeyi deneyin .. ancak çaba – TiagoM

+1

için teşekkürler @DarkLink: yazdırma uzunluğu yerine 'itemNameBox.getText(). ToString()' yazmayı deneyin ve –

cevap

4

Benim sorunum bu kodu altında, ve yöntemin onCreateDialog uçları önce, bir spinner kontrol eden bir kaç yöntemler vardı.

@Override 
public void onItemSelected(AdapterView<?> parent, View view, 
       int pos, long id) { 

if(pos == 0){ 
    if(editText.length() != 0) 
     editText.setText(""); 
} 

Ve yaratırken olduğunu bilmiyordum:
o eğiren ilk madde "hiçbir şey seçmek" ve bu maddenin seçiminde sadece bu gibi o düzenleme metninin içeriğini silme edildi amacı vardır spinner, "onItemSelected" olayını tetikler ve bundan dolayı edittext her zaman silinmişti, ben bile bu spinner öğenin üzerine tıklamamıştım bile ..

Bu yüzden basit bir boolean ile üstesinden gelmeyi başardım. Her defasında onCreateDialog yöntemi boolean'ı true değerine koyarım ve onItemSelected seçeneğim bu bolean yanlış olduğunda çalışır. Aşağıdaki kodu gibi
:

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 

    if(firstGoingSpinner){ 
      firstGoingSpinner = false; 

     }else{ 
      if(pos == 0){ 
       if(editText.length() != 0) 
        editText.setText(""); 

      }else{ 
       editText.setText(""+parent.getItemAtPosition(pos)); 
       Editable etext = editText.getText(); 
       Selection.setSelection(etext, editText.length()); 
      } 

     } 
    } 


Bu ileride kimse yardımcı olur umarım;)