【问题标题】:how I can hide the element with index 0 from dropdown list in spinner如何从微调器的下拉列表中隐藏索引为 0 的元素
【发布时间】:2021-04-21 19:52:15
【问题描述】:

请告诉我如何从 Android Studio 微调器的下拉列表中隐藏索引 0 处的项目?我正在使用此代码,它可以工作,但是当我打开列表时,它显示在底部。也就是说,它专注于以下元素。我需要改变什么?

SpinnerName = (Spinner) v.findViewById(R.id.spinner1);

        ArrayList<String> names = new ArrayList<>();

        names.add(0, "SELECT");
        names.add(1, "Name1");
        names.add(2, "Name2");
        

       final int listsize = names.size()-1;

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_item, names){
            @Override
            public int getCount() {
                return(listsize); 
            }
        };

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        SpinnerName.setAdapter(adapter);
        adapter.setDropDownViewResource(R.layout.spinner_list);
        SpinnerName.setSelection(listsize);
       
       
        SpinnerName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos,
                                       long id) {

                ....

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });

【问题讨论】:

标签: java android android-fragments


【解决方案1】:
SpinnerName.setSelection(listsize);

你的问题就在这里!您正在传递总列表大小数字和 你做错的地方,因为 setSelection 方法用于 显示微调器的默认索引。

除非显示 names.add(0, "SELECT"); 项目,否则您可以简单地执行 SpinnerName.setSelection(1); 将给您第一个旋转项目的操作

【讨论】:

  • 它有效,但我需要显示这 0 项,如果微调器关闭并隐藏,打开时
  • SpinnerName.setSelection(0);使用那个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-05
  • 1970-01-01
相关资源
最近更新 更多