【问题标题】:Is it possible to hide/destroy some items of a spinner programmatically ?是否可以以编程方式隐藏/销毁微调器的某些项目?
【发布时间】:2017-05-25 09:12:59
【问题描述】:

我的微调器中有 14 件物品。但我想针对不同的条件隐藏一些项目。

例如

我想隐藏条件 1 的最后 2 项,条件 2 的最后 4 项,依此类推..

是否可以使用 setVisibility 方法隐藏/销毁微调器的项目,例如隐藏整个微调器?

【问题讨论】:

  • 您可以从列表中删除项目并将适配器设置为微调器。
  • 只需从您用来代表微调器的列表中删除项目。
  • 微调器从适配器获取项目,因此您只需告诉适配器您要隐藏或显示哪些项目。相应地调整get*() 方法。
  • 你能告诉我什么get方法吗? @DeeV
  • getItem(), getCount(), getItemId(), getItemViewType(), getView() 等。您只返回可见的项目,计数应该只是可见的项目。跨度>

标签: android spinner


【解决方案1】:

您可以尝试使用此自定义适配器根据项目在微调器中的位置隐藏项目。

public class CustomAdapter extends ArrayAdapter<String> {

     private int hidingItemIndex;

     public CustomAdapter(Context context, int textViewResourceId, String[] objects, int hidingItemIndex) {
         super(context, textViewResourceId, objects);
         this.hidingItemIndex = hidingItemIndex;
     }

     @Override
     public View getDropDownView(int position, View convertView, ViewGroup parent) {
         View v = null;
         if (position == hidingItemIndex) {
             TextView tv = new TextView(getContext());
             tv.setVisibility(View.GONE);
             v = tv;
         } else {
             v = super.getDropDownView(position, null, parent);
         }
         return v;
     }
 }

查看此链接以获取参考How to hide one item in an Android Spinner

另一种方法是从数组列表中删除项目并设置为微调器。

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多