gpt4 book ai didi

android - 当 listview 滚动时 edittext 设置默认值

转载 作者:太空宇宙 更新时间:2023-11-03 11:17:25 26 4
gpt4 key购买 nike

我有带有 edittext 和 -/+ 按钮的 ListView 。当我点击按钮更改 edittext 值时,如 increment/decrement

当我将值设置为 5 并滚动 ListView 时,edittext 将值设置为默认值,如 0。

我是这样用的

public View getView(final int position, View convertView,ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View connection;
final ViewHolder holder;
connection = new View(context);
connection = inflater.inflate(R.layout.list_row_modified, null);
holder = new ViewHolder();
holder.up = (Button) connection.findViewById(R.id.btn_plus);
holder.down = (Button) connection.findViewById(R.id.btn_minus);
holder.date = (TextView) connection.findViewById(R.id.text_date);

//onClick with holder.up/holder.down

connection.setTag(holder);
return connection;
}

最佳答案

你的问题是你的 getView 每次打开你的 ListView 时都会被调用(这很好),但当你向上/向下滚动时也会被调用。为了减少内存使用,listview 会销毁所有在 listview 可见部分之外的元素,并在回滚时重新创建它们。

因此,为了避免这种情况,您可以使用:

if (convertView == null) {
holder = new ViewHolder();
holder.up = (Button) connection.findViewById(R.id.btn_plus);
holder.down = (Button) connection.findViewById(R.id.btn_minus);
holder.date = (TextView) connection.findViewById(R.id.text_date);
}

convertView.setTag(holder);
return convertView;

有关如何在 ListView 中创建编辑文本的详细教程,请参阅:http://vikaskanani.wordpress.com/2011/07/27/android-focusable-edittext-inside-listview/

关于android - 当 listview 滚动时 edittext 设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com