2016-07-26 4 views
-1

У меня есть EditText в списке, который я заполняю через адаптер списка, моя проблема в том, что всякий раз, когда я ввожу какой-либо текст в EditText и нажимаю кнопку, все мои изменения теряются, но в другой EditText в другом месте (где нет списка) все работает правильно (все изменения сохранены), почему это происходит и как я могу избавиться от этой проблемы?Android: вход Textedit потерян при нажатии кнопки возврата

EditText код >>

<EditText 
    android:id="@+id/edit_card_list_editText" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="@dimen/editbox_cursor_margin" 
    android:layout_marginRight="@dimen/editbox_cursor_margin" 
    android:layout_marginTop="@dimen/edit_card_list_mid_gap" 
    android:background="@color/white" 
    android:ems="10" 
    android:enabled="true" 
    android:fontFamily="@string/roboto_light_font" 
    android:inputType="textNoSuggestions" 
    android:textSize="@dimen/forty_eight_font" > 

</EditText> 

Listadapter код >>

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    View rowView = convertView; 
    boolean convertViewWasNull = false; 

    if(rowView == null){ 

     rowView = inflator.inflate(R.layout.edit_card_list_layout, parent, false); 
     convertViewWasNull = true; 

    } 

    TextView titleview = (TextView) rowView.findViewById(R.id.edit_card_list_title); 
    EditText detailview = (EditText) rowView.findViewById(R.id.edit_card_list_editText); 

    if(title.get(position) != null){ 
     titleview.setText(title.get(position).toString()); 

     } 
    if(detail.get(position) != null){ 
     detailview.setText(detail.get(position).toString()); 
     }else{ 
      detailview.setText(""); 
     } 

    detailview.requestFocus(); 
    //InputMethodManager inputManager = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
    //inputManager.restartInput(detailview); 

    if(convertViewWasNull){ 

     detailview.addTextChangedListener(new GenericTextWatcher(detailview)); 

    } 

    detailview.setTag(title.get(position).toString()); 
    return rowView; 
} 

private class GenericTextWatcher implements TextWatcher{ 

     private EditText view; 
     private GenericTextWatcher(EditText view) { 
      this.view = view; 
     } 

     public void afterTextChanged(Editable editable) { 

      text = editable.toString(); 
      //save the value for the given tag : 
      EditCardListAdapter.this.editTextValues.put((String) view.getTag(),text); 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 

     } 
    } 

ответ

0

Я вижу, вы отслеживаете изменения в этой области, но вы не используете эти изменения, когда вы создаете просмотр списка предметов:

Смежные вопросы