【问题标题】:how to make a button get invisible in listview of an android app如何使按钮在Android应用程序的列表视图中不可见
【发布时间】:2012-07-06 18:09:08
【问题描述】:

在我的应用程序中,我有一个列表视图。每个列表由一个图像、文本和三个按钮组成。 我已将所有这些放在 ListActivity 中。

当用户单击特定按钮时,我使用它来调用我的应用程序的下载功能。那时我希望那个按钮不可见。以下是我的代码的一部分

public class Content extends ListActivity 
{
  public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        adapter = new EventAdapter(this);
        setListAdapter(adapter);
    }

  public class InventoryAdapter extends BaseAdapter implements OnClickListener
{        
    private Context context;   
    ImageButton b1;
    public InventoryAdapter(Context ctx) 
    {     
        context = ctx;
    }
    public long getItemId(int position) 
    {
        return position;
    }
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View view;
        if(convertView == null) 
        {
            LayoutInflater inflater = (LayoutInflater)
            context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.list, null);
            b1 = (ImageButton)view.findViewById(R.id.Btn1);
            b1.setOnClickListener(this);
        }
        else 
        {
            view = convertView;
        }
        b1.setTag(position);            
        return view;
   }

    @Override
    public void onClick(View v) 
    {
        Log.e("onclick","onclick");
        Integer position = (Integer) v.getTag();
        switch(v.getId())
        {
            case R.id.Btn1:
                selected_url=url[position];
                new DownloadTask1().execute();
            break;  
        }
    }
}    

如何使某个特定按钮在单击某个位置时不可见

【问题讨论】:

    标签: android listview button invisible


    【解决方案1】:

    使用button.setVisibility(View.Invisible); 使您的按钮不可见(按钮占用的空间保持原样)。

    或者使用button.setVisibility(View.GONE);(这会从布局中移除按钮,其他视图会占用空间)

    所以你的onClick 方法看起来像:

    @Override
        public void onClick(View v) 
        {
            Log.e("onclick","onclick");
            Integer position = (Integer) v.getTag();
            switch(v.getId())
            {
                case R.id.Btn1:
                    selected_url=url[position];
                    btn1.setVisibility(View.INVISIBLE);   
                    new DownloadTask1().execute();
                break;  
            }
        }
    

    当你想让它们可见时,你必须使用View.VISIBLE

    所以你必须这样做:button.setVisibility(View.VISIBLE);

    【讨论】:

    • 你说的是仪式,但是如何使按钮在列表视图中的特定位置不可见....
    • 我希望 btn1 根据被点击的位置自行隐藏
    • 我已经使用了 view.GONE 和 view.INVISIBLE,我有一个包含 21 个按钮的列表。当我单击位置 0 的按钮时,位置 5、12、20 的按钮变得不可见或消失。我想知道“如何在位置 0 上提及该按钮以使其不可见?”
    • 试试这个:((ImageButton)v.findViewById(R.id.btn1)).setVisibility(View.INVISIBLE);?
    【解决方案2】:

    创建一个数组,根据其位置存储按钮上的点击列表。

    public static ArrayList<Integer> list_Btn    = new ArrayList<Integer>(); //to make the buy button either visible or invisible
    

    在列表视图中按钮的onclick如下

    request_holder.button.setOnClickListener(new OnClickListener() 
                {
                    @Override
                    public void onClick(View v) 
                    {
                                       Appconstant.list_Btn.add(position,View.INVISIBLE);       
                    }
                });
                return convertView;
    

    那么在list view的show list data中如下

    public void ListData(listViewHolder viewHolder, int position) 
            {
                    if(Appconstant.list_Btn.get(position) == View.VISIBLE)
                    {
                        request_holder.buy.setVisibility(View.VISIBLE);
                    }
                    else if(Appconstant.list_Btn.get(position)== View.INVISIBLE)
                    {
                        request_holder.buy.setVisibility(View.INVISIBLE);
                    }
            }
    

    【讨论】:

      【解决方案3】:

      @Kartik 这有效 ((ImageButton)v.findViewById(R.id.btn1)).setVisibility(View.INVISIBLE);谢谢。

      【讨论】:

        猜你喜欢
        • 2022-01-01
        • 2011-05-19
        • 2011-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多