gpt4 book ai didi

android - 滚动时自定义 ListView 随机更改按钮文本或编辑文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:37:54 24 4
gpt4 key购买 nike

我已经搜索过这个,但无济于事,我没有得到问题的确切答案。

我在 ListView 中有一个按钮,单击该按钮时,它会显示一个警告对话框以选择日期,选择日期后,所选日期将成为按钮的文本。代码工作正常,但是当我向下和向上滚动时,日期将随机更改这是我的 getView() 代码我的适配器的方法。这也发生在 EditText 上当我输入任何 EditText工作正常,但当我开始滚动时,值也会发生变化。

这是我的获取 View 方法

public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder viewHolder;
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.repeat_entry_listview,null);

viewHolder = new ViewHolder();
viewHolder.btnDate = (Button) convertView.findViewById(R.id.rpbtnDate);
viewHolder.txtNotes = (EditText) convertView.findViewById(R.id.rpNotes);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}


RepeatEntryList repeatEntryList = listData.get(position);
viewHolder.btnDate.setText(repeatEntryList.getDate());
viewHolder.btnDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//EVEN IF I REMOVE THE CODE FOR SETTING THE BUTTON TEXT TO JUST LIKE THE BELOW CODE. SCROLLING ISSUES STILL PERSIST

viewHolder.btnDate.setText("just sample date text");

//**NOTE UPDATED**
//MY EDITTEXT ALSO HAVE THE SAME BEHAVIOR
}
});
viewHolder.txtNotes.setHint(contx.getResources().getString(R.string.placeholder_txt));
return convertView;
}

注意 假设我有 20 个按钮和 20 个 EditTextListView里面.当我向所有 EditText 输入内容时并通过单击更改按钮的文本,然后向下和向上滚动 ListView , EditText 的文本或值和按钮会改变或互换,有时会消失。

关于我的问题,有人可以向我解释为什么吗 ListView是这样的行为以及如何避免这种特定行为。

最佳答案

更改您的代码,删除 if(convertView == null){ }else{} 条件并直接使用,如下所示

convertView = layoutInflater.inflate(R.layout.repeat_entry_listview,null);
Button btnDate = (Button) convertView.findViewById(R.id.rpbtnDate);
TextView txtNotes = (EditText) convertView.findViewById(R.id.rpNotes);

关于android - 滚动时自定义 ListView 随机更改按钮文本或编辑文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309654/

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