2011-05-22 23 views
1

我在setViewValue的代碼中更新了我的TextSwitcher的文本。但是,如果數據庫的價值沒有改變,我想避免它的更新。 這裏是我當前的代碼:如何避免setViewValue中的TextView/TextSwitcher更新?

public boolean setViewValue(View view, Cursor cursor, int columnIndex) { 
    int viewId = view.getId(); 
    switch(viewId) { 
    case R.id.timetext: 
     TextSwitcher twTime = (TextSwitcher) view; 
     // something is wrong in the next line 
     if (!cursor.getString(columnIndex).equals(getText(viewId))) 
     { 
      twTime.setText(cursor.getString(columnIndex)); 
     } 
     return true; 

不知何故,該數據仍然更新。爲什麼?

看起來像getText()無法正常使用TextSwitcher。如何獲得它的價值?

回答

2

好的,我找到了答案。所有的 首先得到下面的代碼應使用TextSwitcher文本:

TextView tv = (TextView) twTime.getCurrentView(); 
if (!cursor.getString(columnIndex).equals(tv.getText().toString())) { 
    twTime.setText(cursor.getString(columnIndex)); 
} 

,但在此之前,

twTime.setCurrentText(cursor.getString(columnIndex)); 

應該被使用。