Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OnClickListener应用于ArrayList中的最后一个元素_Java_Android_Android Studio - Fatal编程技术网

Java 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

正在使用的图书馆

我有一个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);
    }
  }

}) 
有没有一种方法可以使样式效果应用于堆栈中的顶部卡片(视图中的卡片)而不是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();
    }

    })