滚动时ListView位置问题
ListView position problem while scrolling
我正在开发一个应用程序,其中包含用户必须填写的表单。
该表单有一些文本视图、编辑文本、一个列表视图和两个按钮。
列表视图由一个文本视图和两个单选按钮组成。
我用一个问题和每行两个单选按钮填充列表视图。
如果我重用覆盖 getView 方法中给出的转换视图,当我检查单选按钮时,它将检查第一个可见的单选按钮,同时根据每个滚动的屏幕向下滚动。
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
convertView = ((Activity)context).getLayoutInflater().inflate(R.layout.riskrowlayout, parent, false);
}
((TextView)convertView.findViewById(R.id.tvPreg)).setText(data.get(position));
return convertView;
}
否则,如果我在每次调用 getView 时都膨胀布局,它会自动取消选中我在滚动时选中的单选按钮。
@Override
public View getView(int position, View convertView, ViewGroup parent){
convertView = ((Activity)context).getLayoutInflater().inflate(R.layout.riskrowlayout, parent, false);
((TextView)convertView.findViewById(R.id.tvPreg)).setText(data.get(position));
return convertView;
}
我做错了什么?我该如何解决这个问题?
如果您需要更多信息,我会给您。
非常感谢!
上一条评论的问题已解决,只需粘贴来自 another post:
的代码
@Override
public int getViewTypeCount() {
return getCount();
}
@Override
public int getItemViewType(int position) {
return position;
}
您需要将检查数据保存到一个数组中。当您向下滚动并返回检查行时,它不知道检查的位置。如果您没有模型数组,只需创建一个检查列表并在 getview 方法内部和内部设置所有 false 查看数组。
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
convertView = ((Activity)context).getLayoutInflater().inflate(R.layout.riskrowlayout, parent, false);
}
TextView textView = (TextView) convertView.findViewById(R.id.tvPreg);
textView.setText(data.get(position));
radioButton.setChecked(checked.get(position));
return convertView;
}
我正在开发一个应用程序,其中包含用户必须填写的表单。 该表单有一些文本视图、编辑文本、一个列表视图和两个按钮。
列表视图由一个文本视图和两个单选按钮组成。 我用一个问题和每行两个单选按钮填充列表视图。 如果我重用覆盖 getView 方法中给出的转换视图,当我检查单选按钮时,它将检查第一个可见的单选按钮,同时根据每个滚动的屏幕向下滚动。
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
convertView = ((Activity)context).getLayoutInflater().inflate(R.layout.riskrowlayout, parent, false);
}
((TextView)convertView.findViewById(R.id.tvPreg)).setText(data.get(position));
return convertView;
}
否则,如果我在每次调用 getView 时都膨胀布局,它会自动取消选中我在滚动时选中的单选按钮。
@Override
public View getView(int position, View convertView, ViewGroup parent){
convertView = ((Activity)context).getLayoutInflater().inflate(R.layout.riskrowlayout, parent, false);
((TextView)convertView.findViewById(R.id.tvPreg)).setText(data.get(position));
return convertView;
}
我做错了什么?我该如何解决这个问题? 如果您需要更多信息,我会给您。
非常感谢!
上一条评论的问题已解决,只需粘贴来自 another post:
的代码@Override
public int getViewTypeCount() {
return getCount();
}
@Override
public int getItemViewType(int position) {
return position;
}
您需要将检查数据保存到一个数组中。当您向下滚动并返回检查行时,它不知道检查的位置。如果您没有模型数组,只需创建一个检查列表并在 getview 方法内部和内部设置所有 false 查看数组。
@Override
public View getView(int position, View convertView, ViewGroup parent){
if(convertView == null){
convertView = ((Activity)context).getLayoutInflater().inflate(R.layout.riskrowlayout, parent, false);
}
TextView textView = (TextView) convertView.findViewById(R.id.tvPreg);
textView.setText(data.get(position));
radioButton.setChecked(checked.get(position));
return convertView;
}