单击ListView时将Button可见性设置为GONE

时间:2018-09-06 08:51:17

标签: android

当我单击列表视图时,我想使相关按钮的可见性消失,但这仅适用于列表视图中的第一个按钮。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

          Button btn = findViewById(R.id.btn_refresh);
          btn.setVisibility(View.GONE);// this works for first button
        }
    });

3 个答案:

答案 0 :(得分:1)

您要设置在

中选择的按钮的可见性
Button btn = findViewById(R.id.btn_refresh);

不是点击的项目。

您需要做

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id {
      view.setVisibility(View.GONE); // Setting the visibility of the selected view
    }
});

答案 1 :(得分:1)

在这种情况下,您对按钮的定义是错误的。像这样编辑它:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

      Button btn = view.findViewById(R.id.btn_refresh);
      btn.setVisibility(View.GONE);// this works for first button
    }
});

答案 2 :(得分:0)

灵魂:

您需要首先获取要单击的项目的位置,请尝试以下操作:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id {

      (your_list_view).getchildAt(position).findViewById(R.id.btn_refresh).setVisibility(View.Gone) // Setting the visibility of the selected view

    }
});

希望有帮助。