我有EditText在其中的列表項,我不知道會有多少項目。 我在EditText中輸入一些文本時出現問題,然後向下滾動ListView,再次向上滾動後,我的第一個EditText中沒有文本,或者ListView中的其他EditText有一些文本。EditText在滾動列表視圖中丟失內容
我已經嘗試了TextWatcher,並將數據保存到數組,但問題是ListView中返回的視圖位置總是正確的,所以我從數組中丟失了一些數據。 -.-
如何在ListView中檢測正確的視圖位置?
例如:
如果我有ListView中10個項目,其中只有5當前可見。 適配器返回從0到4的位置......多數民衆贊成。 當我向下滾動項目6的位置是0 ... wtf?和我失去了陣列上的位置0的數據:)
Im使用ArrayAdapter。
請幫忙。
下面是一些代碼:
public View getView(int position, View convertView, ViewGroup parent) {
tmp_position = position;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.element_in_game, null);
holder.scoreToUpdate = (EditText) convertView
.findViewById(R.id.elementUpdateScore);
holder.scoreToUpdate.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
scoresToUpdate[tmp_position] = s.toString();
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
initScoresToUpdateEditTexts(holder.scoreToUpdate, hint);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
holder.scoreToUpdate.setText(scoresToUpdate[tmp_position]);
}
return convertView;
}
不適合我嗎? – DPM 2013-11-29 12:35:56
Anand,你好,我現在有同樣的問題,我試着在你的代碼的解決方案,但顯然我不能得到它的工作,我如何更新arraylist取決於編輯文本 – 2015-07-09 05:47:40
@PankajNimgade,具體數據對我來說作品:http://stackoverflow.com/a/21404201/2914140。裏面'holder.scoreToUpdate.setOnFocusChangeListener(...'寫:if(!hasFocus){scoresToUpdate [position] = holder.scoreToUpdate.getText()。toString();} – CoolMind 2016-08-30 21:15:53