2017-03-07 39 views
0

我有一個活動,有列表視圖和編輯文本。 在這裏,當我不得不從列表視圖中獲取數據時,在textview中存儲了從列表視圖獲取的數據的單擊事件mehod。 但問題是, 編輯文本時清除數據時,我選擇從列表視圖中的數據.. 所以 我應該怎麼辦 如果我想我的編輯文本數據,因爲它是從另一個活動列表視圖中選擇數據回來後。編輯的文本值清晰,當移動到下一個值,並在當前活動回來

我嘗試完成()在點擊事件,但它不working.data正在被清除。

在此先感謝。

回答

0

每當數據發生變化時,將這些數據存儲在數組中。您可以使用以下邏輯,我一般在我的項目中使用

private boolean programmaticalTextChange = false; 

private KeyEvent UnknownKey = new KeyEvent(KeyEvent.ACTION_DOWN, 
      KeyEvent.KEYCODE_UNKNOWN); 

    public class MyTextWatcher implements TextWatcher 
    { 
     private EditText editText; 

     public MyTextWatcher(EditText editText) 
     { 
      this.editText = editText; 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 

     @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) { 
      if (!programmaticalTextChange) 
       editText.dispatchKeyEvent(UnknownKey); 
     } 
    } 


@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
     //... 
     myEditText.setOnKeyListener(new OnKeyListener() { 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       updateItem(item, v, rowView); 
       return false; 
      } 
     }); 
     myEditText.addTextChangedListener(new MyTextWatcher(myEditText)); 

} 

protected void updateItem(MyClass item, View v) { 
     try { 
      item.Name = ((EditText) v).getText() 
        .toString()); 
     } catch (Exception e) { 

     } 
    } 
0

有很多選項。您可以使用共享首選項。當你在該活動中,您通過做

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = preferences.edit(); 

創建一個共享偏好對象,你可以通過這樣

editor.putString("MyPreference", edittext.getText()); 

從舊的活動存儲從編輯文本視圖文本當您返回到它你可以做

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    String myEditText = preferences.getString("MyPreference") ; 

希望它能幫助。

相關問題