我正在编写一个自定义列表,其中显示的第三个列表项具有作为子项的切换按钮。在切换按钮上单击它会启动确认对话框,如果想要切换按钮。
现在如果列表没有滚动,那么它的工作完美。但是,如果滚动列表(因此第3项显示为第1项),则按钮切换状态(toggleButton.setChecked(false)
)在Dialog-Cancel
操作后无效。
如果我遗失了任何建议,请提出任何建议。
修改
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if(convertView == null) {
vi = inflater.inflate(R.layout.setting_prefernce_row, parent, false);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.title = (TextView)vi.findViewById(R.id.txtPreferenceName); // Preference Name
viewHolder.txtPreferenceSub = (TextView)vi.findViewById(R.id.txtPreferenceSub); // Sub-Preference Name
viewHolder.txtArrow = (TextView)vi.findViewById(R.id.txtArrow); // text before arrow
viewHolder.imgArrow = (ImageView)vi.findViewById(R.id.imgArrow); // right_arrow
viewHolder.btnToggleState = (ToggleButton)vi.findViewById(R.id.tglToggleState); // toggle button
viewHolder.switchTemperatureUnit = (ImageView)vi.findViewById(R.id.switchTemperatureUnit); // switch button for temperature
//viewHolder.checkbox.setTag(list.get(position));
//viewHolder.scores.setTag(list.get(position));
vi.setTag(viewHolder);
} else {
vi = convertView;
}
....
}
答案 0 :(得分:0)
这些是我们需要针对此类型特定要求执行的常规操作。如果你没有解决问题,请告诉我。
答案 1 :(得分:0)
优化ViewHolder实现所需的damm。并且获得目标项目视图效果很好。
for(int i = start, j = lstSettingPreference.getLastVisiblePosition(); i <= j; i++) {
if (ordinal == (int) lstSettingPreference.getItemAtPosition(i)) {
view = lstSettingPreference.getChildAt(i - start);
lstSettingPreference.getAdapter().getView(i, view, lstSettingPreference);
break;
}
}