如何解决android中listview中删除重复位置的问题
首次在listview中加载16项。 我只需要选择2个项目(红色按钮)。 但是当我滚动listview所有项目时,我显示了错误的11个选定项目如何解决android中listview中删除重复位置的问题,android,android-listview,Android,Android Listview,首次在listview中加载16项。 我只需要选择2个项目(红色按钮)。 但是当我滚动listview所有项目时,我显示了错误的11个选定项目 public View getView(final int position, View convertView, ViewGroup parent) { v = convertView; holder = new PlanetHolder(); if (convertView =
public View getView(final int position, View convertView, ViewGroup parent)
{
v = convertView;
holder = new PlanetHolder();
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_row, null);
holder.btn=(Button)v.findViewById(R.id.btn1);
holder.displayname = (TextView)v.findViewById(R.id.txt);
if(selectedarray.get(position).equals("1"))
{
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
}
holder.btn.setOnClickListener(new OnClickListener()
{
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
}
});
v.setTag(holder);
}
else
Log.d("else_position", "else_position= "+position);
holder = (PlanetHolder) v.getTag();
ItemList p = planetList.get(position);
holder.displayname.setText(p.getU_name());
return v;
}
请写下其他部分
if (selectedarray.get(position).equals("1")) {
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
} else {
holder.btn.setBackgroundColor(R.color.white);
holder.btn.setClickable(true);
}
首先
第二,如果(convertView==null),请不要将其保存在项下或项下
在if和else阻塞后保留它
看这里
public View getView(final int position, View convertView, ViewGroup parent)
{
v = convertView;
holder = new PlanetHolder();
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_row, null);
holder.btn=(Button)v.findViewById(R.id.btn1);
holder.displayname = (TextView)v.findViewById(R.id.txt);
v.setTag(holder);
}
else
{
Log.d("else_position", "else_position= "+position);
holder = (PlanetHolder) v.getTag();
}
ItemList p = planetList.get(position);
holder.displayname.setText(p.getU_name());
if(selectedarray.get(position).equals("1"))
{
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
}
holder.btn.setOnClickListener(new OnClickListener()
{
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
}
});
return v;
}
我解决了我的问题
public View getView(final int position, View convertView, ViewGroup parent)
{
v = convertView;
holder = new PlanetHolder();
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_row, null);
holder.btn=(Button)v.findViewById(R.id.btn1);
holder.displayname = (TextView)v.findViewById(R.id.txt);
if(selectedarray.get(position).equals("1"))
{
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
}
holder.btn.setOnClickListener(new OnClickListener()
{
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
}
});
v.setTag(holder);
}
else
Log.d("else_position", "else_position= "+position);
holder = (PlanetHolder) v.getTag();
ItemList p = planetList.get(position);
holder.displayname.setText(p.getU_name());
if(selectedarray.get(position).equals("1"))
{
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
}
else
{
holder.btn.setBackgroundColor(R.color.white);
holder.btn.setClickable(true);
}
return v;
}
第一次加载真正的红色按钮,但在显示11项红色按钮后,我会滚动列表视图。我不需要11项红色按钮。请在适配器中使用viewholder
public View getView(final int position, View convertView, ViewGroup parent)
{
v = convertView;
holder = new PlanetHolder();
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_row, null);
holder.btn=(Button)v.findViewById(R.id.btn1);
holder.displayname = (TextView)v.findViewById(R.id.txt);
if(selectedarray.get(position).equals("1"))
{
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
}
holder.btn.setOnClickListener(new OnClickListener()
{
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
}
});
v.setTag(holder);
}
else
Log.d("else_position", "else_position= "+position);
holder = (PlanetHolder) v.getTag();
ItemList p = planetList.get(position);
holder.displayname.setText(p.getU_name());
if(selectedarray.get(position).equals("1"))
{
holder.btn.setBackgroundColor(R.color.red);
holder.btn.setClickable(false);
}
else
{
holder.btn.setBackgroundColor(R.color.white);
holder.btn.setClickable(true);
}
return v;
}