Java OnClickListener应用于ArrayList中的最后一个元素
正在使用的图书馆 我有一个ArrayList,它可以像一副卡片一样在许多卡片中循环移动(类似于Tinder的UI),我决定添加一个onclicklistener,这样应用于卡片的样式在单击时就会改变,并且它可以工作,但它只在ArrayList中的最后一张卡片上工作Java OnClickListener应用于ArrayList中的最后一个元素,java,android,android-studio,Java,Android,Android Studio,正在使用的图书馆 我有一个ArrayList,它可以像一副卡片一样在许多卡片中循环移动(类似于Tinder的UI),我决定添加一个onclicklistener,这样应用于卡片的样式在单击时就会改变,并且它可以工作,但它只在ArrayList中的最后一张卡片上工作 flingContainer.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener(){ @override public void onI
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);
}
}
})
有没有一种方法可以使样式效果应用于堆栈中的顶部卡片(视图中的卡片)而不是Arraylist中的底部卡片(最后一张卡片)
我已经尝试过,但它似乎不起作用,即使我替换了某些方面以匹配我正在使用的库对于使用此库的任何人,如果您想在视图中操作卡,则解决方案是getSelectedView()
对于使用此库并希望在视图中操作卡的任何人,解决方案是getSelectedView()
我建议您将
namecard
分配给一个局部变量,甚至一个字段。您可能会在每次单击中查找它4次(这不是免费的)。@AjahnCharles请原谅我对Java的无知,我是否可以为当前用户的信息在Java中创建相当于php会话的会话…?在活动的生命周期内,您只需将信息存储为activity类中的字段即可(或者更好的是,您可以使用ViewModel)。在活动之间,您可以使用Intent extras(我通常只传递ID或多步骤表单的字段值)传递少量数据。除此之外,您还可以使用SharedReference或类似Android的本地db 房间或领域。我建议您将namecard
分配给一个局部变量,甚至一个字段。您可能会在每次单击中查找它4次(这不是免费的).@AjahnCharles请原谅我对Java的无知,我可以为当前用户的信息创建Java中的php会话吗?在活动的生命周期内,您可以将信息存储为活动类中的字段(或者更好,您可以使用ViewModel)。在活动之间,您可以使用Intent extras传递少量数据(我通常只传递ID或多步骤表单的字段值)。除此之外,您还可以使用SharedReferences或类似Android的本地db 房间或领域。
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();
}
})