在下面的代码中,在 ArrayAdapter 内部有 getTag() 的 else 部分
holder = (ViewHolder) convertView.getTag();
如何使用此部分更新或获取视图项的最新状态,并使该状态与保存的状态保持一致。就像您单击一个复选框或从数据库中获取复选框的选中状态并希望它以正确的复选框状态显示?
在我的应用程序中,我从数据库中获取复选框的先前状态,并在创建 Listview 时将复选框设置为该状态,如果框的状态发生更改,则该状态更改将保存到数据库和复选框还将显示状态的变化。
换句话说,除了 getTag 行之外,我应该在该部分代码中添加什么?
if ((convertView == null)){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.smalltank_customer_row, null);
holder = new ViewHolder();
holder.textViewOne = (TextView) convertView.findViewById(R.id.textView1);
holder.textViewTwo = (TextView) convertView.findViewById(R.id.textView2);
holder.textViewThree = (TextView) convertView.findViewById(R.id.textView3);
holder.radioGroupOne = (RadioGroup) convertView.findViewById(R.id.radioGroup1);
holder.radioButtonOne = (RadioButton) convertView.findViewById(R.id.radioButton1);
holder.radioButtonTwo = (RadioButton) convertView.findViewById(R.id.radioButton2);
holder.checkBoxOne = (CheckBox) convertView.findViewById(R.id.checkBox1);
holder.buttonOne = (Button) convertView.findViewById(R.id.button1);
holder.buttonTwo = (Button) convertView.findViewById(R.id.button2);
holder.buttonThree = (Button) convertView.findViewById(R.id.button3);
holder.buttonFour = (Button) convertView.findViewById(R.id.button4);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}