Android Listview和交换机
我对ArrayAdapter感到困惑。我有一个列表视图,由子视图组成 每个子视图包含一个txtview和一个开关 现在,我可以打印出包含我的项目的所有列表,但我有两个问题:Android Listview和交换机,android,android-listview,Android,Android Listview,我对ArrayAdapter感到困惑。我有一个列表视图,由子视图组成 每个子视图包含一个txtview和一个开关 现在,我可以打印出包含我的项目的所有列表,但我有两个问题: 当我打开开关时,如果我向下滚动并返回,开关将关闭 我不知道如何得到所有的开关。事实上,我希望能够同时打开所有开关 以下是我所拥有的: public class PersAjoutOpAdapter extends ArrayAdapter { static class ViewHolder {
- 当我打开开关时,如果我向下滚动并返回,开关将关闭
- 我不知道如何得到所有的开关。事实上,我希望能够同时打开所有开关
public class PersAjoutOpAdapter extends ArrayAdapter {
static class ViewHolder {
public TextView txt_pers;
public Switch switch_pers;
}
private LayoutInflater inflater;
private boolean tous_coches = false;
private ImageView img_check_all_pers_op;
private ArrayList<Boolean> v_switchs;
private boolean en_train_de_checker_all;
public PersAjoutOpAdapter(Context p_context, ImageView p_img_check_all_pers_op) {
super(p_context, R.layout.item_pers_ajout_op, Friendly_Account.projet_actu.getPers_dans_projet());
inflater = LayoutInflater.from(p_context);
img_check_all_pers_op = p_img_check_all_pers_op;
v_switchs = new ArrayList<Boolean>(Friendly_Account.projet_actu.getPers_dans_projet().size());
for (int i=0 ; i<Friendly_Account.projet_actu.getPers_dans_projet().size() ; i++) {
v_switchs.add(i, false);
}
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View rowView = convertView;
if (rowView == null) {
rowView = inflater.inflate(R.layout.item_pers_ajout_op, null);
holder = new ViewHolder();
holder.txt_pers = (TextView) rowView.findViewById(R.id.item_pers_ajout_op_prenom_nom);
holder.switch_pers = (Switch) rowView.findViewById(R.id.item_pers_ajout_op_switch);
rowView.setTag(holder);
holder.switch_pers.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
}
});
}else {
holder = (ViewHolder) rowView.getTag();
}
Personne pers = Friendly_Account.projet_actu.getPers_dans_projet().get(position);
holder.txt_pers.setText(pers.getPrenom());
holder.switch_pers.setChecked(v_switchs.get(position));
return rowView;
}
public类PersAjoutOpAdapter扩展了ArrayAdapter{
静态类视窗夹{
公共文本视图;
公共开关;
}
私人充气机;
私有布尔tous_coches=false;
私人图像查看图像检查所有人操作;
专用阵列列表v_开关;
私有布尔值列检查程序;
公共PersAjoutOpAdapter(上下文p_Context,图像视图p_img_check_all_pers_op){
super(p_context,R.layout.item_pers_ajout_op,Friendly_Account.projet_actu.getPers_dans_projet());
充气器=从(p_上下文)开始的充气器;
img_check_all_pers_op=p_img_check_all_pers_op;
v_switchs=newarraylist(友好的账户.projet_actiu.getPers_dans_projet().size());
对于(int i=0;ilist view回收视图。您需要一种方法来维护状态OK,我想制作一个布尔数组列表来“保存”每个对象的状态。这是一种好方法还是有更好的方法?使用稀疏布尔数组。我几乎能理解,谢谢。当有开关时,我需要将状态保存为稀疏布尔(对吗?)。我该怎么做?在getview中,我有一个setOnCheckedChangeListener
,但我不知道开关的位置否?适用于复选框的相同概念也适用于开关。请遵循解决方案