我有一个带有edittext的列表视图。 EditText在编辑器动作侦听器上设置。它在1日工作正常。但是当我按下键盘上的Done键并且我想编辑listview的前一行时,edittext不会获取新值。 我该如何解决这个问题? Tks家伙^^
holder.zaiko_no.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
String zk = holder.zaiko_no.getText().toString();
holder.item.setZaikoNo(zk);
int zaiko_no_length = zk.length();
int shelf_num_length = holder.shelf_num.getText().toString().length();
if (position == n - 1) {
if (zaiko_no_length > 0 && shelf_num_length > 0) {
ShelfActivity.shelfItemList.add(new ShelfItem());
}
}
if (zaiko_no_length > 0 && shelf_num_length > 0) {
holder.status.setText("-");
holder.item.setStatus("-");
if(position == ShelfActivity.shelfItemList.size()-2){
sendBtn.setEnabled(true);
}
} else {
holder.status.setText("");
}
notifyDataSetChanged();
if(sendCheck()) sendBtn.setEnabled(true);
else sendBtn.setEnabled(false);
return true;
}
});
答案 0 :(得分:0)
每次创建视图时,编辑文本都会丢失其数据。因此,您必须将数据保存在某个数组中。因此,创建一个大小等于行数的String []数组。
初始化String数组以保存数据 - String [] zaiko_no = new String()[list.size()];
在setOnEditorActionListener中 - zaiko_no [position] = holder.zaiko_no.getText()。toString();
听众之外 - zaiko_no.setText(zaiko_no [位置]);
希望这有帮助。