Android-getView中自定义listview中的常规重复问题
我将数据从mysql数据库拉入自定义Listview,但如下所示,我有一个自定义按钮。根据数据库中的记录,按钮为黑色或红色。例如,我的数据库中有30个收益率,我只使用2个红色和28个黑色来提取数据。假设红色的数据是我的数据编号3和数据编号5。当我开始向下滚动时;我的数据编号3和5变为红色,然后8数据,然后产量编号13和15,23和25变为红色。。所以有一个重复。。我无法阻止它。。有解决办法吗?您能用示例代码提供支持吗?我的自定义适配器代码如下所示:Android-getView中自定义listview中的常规重复问题,android,android-studio,Android,Android Studio,我将数据从mysql数据库拉入自定义Listview,但如下所示,我有一个自定义按钮。根据数据库中的记录,按钮为黑色或红色。例如,我的数据库中有30个收益率,我只使用2个红色和28个黑色来提取数据。假设红色的数据是我的数据编号3和数据编号5。当我开始向下滚动时;我的数据编号3和5变为红色,然后8数据,然后产量编号13和15,23和25变为红色。。所以有一个重复。。我无法阻止它。。有解决办法吗?您能用示例代码提供支持吗?我的自定义适配器代码如下所示: public class CostumAdap
public class CostumAdaptor extends ArrayAdapter<Ses> {
private ArrayList<Ses> list;
private ViewHolderr vHolder;
boolean flag = false;
public CostumAdaptor(Context context, int resource, ArrayList<Ses> list) {
super(context, resource, list);
list = new ArrayList<Ses>();
list.addAll(list);
}
public int getCount() {
return list.size();
}
public Ses getItem(int position) {
return list.get(position);
}
public long getItemId(int position) {
return list.get(position).hashCode();
}
public View getView(int position, View conView, ViewGroup parent) {
View vi = conView;
if (vi == null) {
vHolder = new ViewHolderr();
vi = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.tiyatro_item, null);
vHolder.tiyatro_adi = vi.findViewById(R.id.tiyatro_adi);
vHolder.begeni_sayisi2 = (TextView) vi.findViewById(R.id.begeni_sayisi2);
vHolder.daha_sonra_dinleyecegim_2 = (TextView) vi.findViewById(R.id.daha_sonra_dinleyecegim_2);
vHolder.begenmedim_2 = (TextView) vi.findViewById(R.id.begenmedim_2);
vHolder.tiyatro = vi.findViewById(R.id.tiyatro);
vHolder.tur = vi.findViewById(R.id.tur);
vHolder.mensei = vi.findViewById(R.id.mensei);
vHolder.yapimci = vi.findViewById(R.id.yapimci);
vHolder.songCoverImage = vi.findViewById(R.id.coverImage);
vHolder.begendim = vi.findViewById(R.id.begendim);
vHolder.begenmedim = vi.findViewById(R.id.begenmedim);
vHolder.daha_sonra_dinleyecegim = vi.findViewById(R.id.daha_sonra_dinleyecegim);
vi.setTag(vHolder);
}
else {
vHolder = (ViewHolderr) vi.getTag();
}
Ses dmodel = (Ses) list.get(position);
String t_tiyatro_adi = dmodel.getTiyatro_adi();
vHolder.tiyatro_adi.setTag(dmodel);
vHolder.tiyatro.setTag(dmodel);
vHolder.tur.setTag(dmodel);
vHolder.mensei.setTag(dmodel);
vHolder.yapimci.setTag(dmodel);
vHolder.begendim.setTag(dmodel);
vHolder.tiyatro_adi.setText(dmodel.getTiyatro_adi());
vHolder.tiyatro.setText(dmodel.getTiyatro());
vHolder.tur.setText(dmodel.getTur());
vHolder.mensei.setText(dmodel.getMensei());
vHolder.yapimci.setText(dmodel.getYapimci());
String CACHE = t_tiyatro_adi;
new Handler().postDelayed(new Runnable() {
public void run() {
for (int i = 0; i < List1.size(); i++) {
for (int ii = 0; ii < List2.size(); ii++) {
if (List1.get(i).equals(List2.get(ii))) {
if (List1.get(i).equals(CACHE)) {
flag = true;
vHolder.begendim.setImageResource(R.drawable.begendim_dolu);
}
}
}
}
if (!flag) {
vHolder.begendim.setImageResource(R.drawable.begendim_bos);
}
}
}, 250);
return vi;
}
private class ViewHolderr {
TextView tiyatro_adi, tiyatro, tur, mensei, yapimci, begeni_sayisi2, daha_sonra_dinleyecegim_2, begenmedim_2;
ImageView songCoverImage;
ImageView begendim;
}
}
公共类CostumAdapter扩展了ArrayAdapter{
私有数组列表;
私人视窗持有者;
布尔标志=假;
公共CostumAdaptor(上下文、int资源、ArrayList列表){
超级(上下文、资源、列表);
列表=新的ArrayList();
list.addAll(list);
}
public int getCount(){
返回list.size();
}
公共项目(内部位置){
返回列表。获取(位置);
}
公共长getItemId(int位置){
return list.get(position.hashCode();
}
公共视图getView(内部位置、视图视图视图、视图组父视图){
视图vi=conView;
如果(vi==null){
vHolder=新的ViewHolderr();
vi=((LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE)).inflate(R.LAYOUT.tiyatro\u项,空);
vHolder.tiyatro_adi=vi.findViewById(R.id.tiyatro_adi);
vHolder.begeni_sayis2=(TextView)vi.findViewById(R.id.begeni_sayis2);
vHolder.daha_sonra_dinleyecegim_2=(文本视图)vi.findViewById(R.id.daha_sonra_dinleyecegim_2);
vHolder.begenmedim_2=(TextView)vi.findViewById(R.id.begenmedim_2);
vHolder.tiyatro=vi.findViewById(R.id.tiyatro);
vHolder.tur=vi.findViewById(R.id.tur);
vHolder.mensei=vi.findViewById(R.id.mensei);
vHolder.yapimci=vi.findViewById(R.id.yapimci);
vHolder.songCoverImage=vi.findViewById(R.id.coverImage);
vHolder.begendim=vi.findviewbyd(R.id.begendim);
vHolder.begenmedim=vi.findviewbyd(R.id.begenmedim);
vHolder.daha_sonra_dinleyecegim=vi.findViewById(R.id.daha_sonra_dinleyecegim);
vi.setTag(vHolder);
}
否则{
vHolder=(ViewHolderr)vi.getTag();
}
sesdmodel=(Ses)list.get(position);
字符串t_tiyatro_adi=dmodel.getTiyatro_adi();
vHolder.tiyatro_adi.setTag(dmodel);
vHolder.tiyatro.setTag(dmodel);
vHolder.tur.setTag(dmodel);
vHolder.mensei.setTag(dmodel);
vHolder.yapimci.setTag(dmodel);
vHolder.begendim.setTag(dmodel);
vHolder.tiyatro_adi.setText(dmodel.getTiyatro_adi());
vHolder.tiyatro.setText(dmodel.getTiyatro());
vHolder.tur.setText(dmodel.getur());
vHolder.mensei.setText(dmodel.getMensei());
vHolder.yapimci.setText(dmodel.getYapimci());
字符串缓存=t_tiyatro_adi;
new Handler().postDelayed(new Runnable()){
公开募捐{
对于(int i=0;i
注意:List1和List2是从mysql数据库中提取的ArrayList,与for循环进行比较。通过比较,按钮的颜色为红色或黑色。有人可以帮助我吗?我用RecyclerView解决了我的问题。