gpt4 book ai didi

java - OnClickListener 适用于 ArrayList 中的最后一个元素

转载 作者:太空宇宙 更新时间:2023-11-04 09:27:06 24 4
gpt4 key购买 nike

正在使用的库 SwipCards

我有一个 ArrayList,它循环遍历许多卡片,就像一副卡片一样移动(类似于 Tinder 的 UI),我决定添加一个 onclicklistener,以便应用到卡片的样式将在单击时更改,它可以工作,但它只适用于 ArrayList 中的最后一张卡片。

flingContainer.setOnItemClickListener(new 
SwipeFlingAdapterView.OnItemClickListener(){
@override
public void onItemClicked(int itemPosition, Object dataObject) {
if (findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
findViewById(R.id.namecard).setVisibility(View.INVISIBLE);
}
else if (findViewById(R.id.namecard).getVisibility() == (View.GONE)){
findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
else if (findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
}

})

有没有办法让样式效果应用于堆栈中的顶部卡( View 中的卡)而不是 Arraylist 中的底部卡(最后一张卡)?

我已经尝试过this solution,但即使我替换了某些方面以匹配我正在使用的库,它似乎也不起作用

最佳答案

对于使用此库的任何人并且您想要操作 View 中的卡片,解决方案是 getSelectedView()

flingContainer.setOnItemClickListener(new  SwipeFlingAdapterView.OnItemClickListener(){
@override
public void onItemClicked(int itemPosition, Object dataObject) {

View view = flingContainer.getSelcetedView();
if (view.findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
view.findViewById(R.id.namecard).setVisibility(View.INVISIBLE);
}
else if (view.findViewById(R.id.namecard).getVisibility() == (View.GONE)){
view.findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}
else if (view.findViewById(R.id.namecard).getVisibility() == (View.VISIBLE)){
view.findViewById(R.id.namecard).setVisibility(View.VISIBLE);
}

arrayAdapter.notifyDataSetChanged();
}

})

关于java - OnClickListener 适用于 ArrayList 中的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57547663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com