我在我的Android应用程序中使用自定义ListView。问题是当我滚动ListView时,它会自动清除EditText中输入的数据(Edittext作为list_item)并刷新ListView。我想阻止它停止在ListView Scroll上清除输入的数据。 请帮助我..防止自定义ListView刷新滚动。我想停止刷新
回答
1)定义自定义列表适配器
2)定义的对象为每个项目像class MyClass { String myText}
3)每个项目的EditText上的值存储在该对象
我具有用于存储CheckBox的状态的代码。为EditText使用和定制它。
protected interface MyTextWatcher extends TextWatcher {
public void setEnabled(EditText editText, boolean enable);
public void setText(EditText editText, String text);
}
private MyTextWatcher generalTextWatcher = new MyTextWatcher() {
private boolean enabled_edtQty = true;
private boolean enabled_edtPackingQty = true;
public void setEnabled(EditText editText, boolean enable) {
if (editText.equals(edtQty))
{
this.enabled_edtQty = enable;
}
else if (editText.equals(edtPackingQty))
{
this.enabled_edtPackingQty = enable;
}
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (this.enabled_edtQty && edtQty != null
&& edtQty.getText().hashCode() == s.hashCode())
{
edtQty_onTextChanged(s, start, before, count);
}
else if (this.enabled_edtPackingQty && edtPackingQty != null
&& edtPackingQty.getText().hashCode() == s.hashCode())
{
edtPackingQty_onTextChanged(s, start, before, count);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void setText(EditText editText, String text) {
this.setEnabled(editText, false);
editText.setText(text);
this.setEnabled(editText, true);
}
};
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView;
final MyClass item = getItem(position);
edtQty.addTextChangedListener(generalTextWatcher);
edtPackingQty.addTextChangedListener(generalTextWatcher);
generalTextWatcher.setText(edtQty, item.myText1);
generalTextWatcher.setText(edtPackingQty, item.myText2);
}
protected void edtQty_onTextChanged(CharSequence s, int start, int before,
int count) {
item.myText1 = s;
}
protected void edtPackingQty_onTextChanged(CharSequence s, int start, int before,
int count) {
item.myText2 = s;
}
在你的情况,你应该使用的addTextChangedListener
代替setOnCheckedChangeListener
我在一个列表项中有两个EditText控件,所以当我得到更多记录时,我该如何维护值运行时? – Ajay
@Android_User我更新了我的答案 – breceivemail
Thanx For Help。但我有点困惑。你能告诉我什么是“EntAcc002”吗? – Ajay
由breceivemail的答案是正确的,
,你也可以尝试使用ArrayList中存储数据所需 时 onTextChangeListener可以存储数据和你可以在你的ListView的适配器
注意的getView恢复数据:如果你正在寻找停车将L从清凉的上滚动istview,那么你会在错误的方向,因为我们不能刷新其内容(因为所有关闭屏幕内容在列表视图倾倒)停止列表视图,适配器是由储存/需要时的ListView提供数据(你不能依靠系统来保护/存储你应该手动存储/恢复数据的数据)。
- 1. 停止自动刷新
- 2. 防止刷新?
- 3. 如何防止在PropertyGrid刷新滚动?
- 4. 防止刷新SSI
- 5. 防止表单自动刷新
- 6. Yodlee停止刷新
- 7. 停止ListView Cell在Android中滚动时刷新?
- 8. 停止自动页面刷新
- 9. 自动刷新div和当textarea选择停止刷新div
- 10. 自定义ListView不刷新
- 11. 防止自动浏览器滚动刷新没有散列
- 12. 防止父页刷新
- 13. 防止Javascript页面刷新
- 14. 防止HTML页面刷新
- 15. 防止用户刷新
- 16. 如何停止DataGridView刷新?
- 17. 代码不停止刷新
- 18. Magento结帐停止刷新
- 19. 停止JQuery刷新DIV
- 20. 停止刷新页面
- 21. 的JavaScript停止刷新
- 22. 从自定义ListView类中刷新ListView
- 23. CollectionView header停止在滚动时刷新/重新加载数据
- 24. 如何防止绑定刷新
- 25. struts - 防止刷新重新提交
- 26. div滚动到顶部刷新后需要停止自动滚动到顶部
- 27. 如何停止自定义视图刷新?
- 28. 自定义轨道记录器未刷新停止客运
- 29. 启动并停止javascript刷新
- 30. SwipeRefreshLayout停止刷新没有动画
显示你的代码.. ??? – QuokMoon