在Spinner中使用项目作为提示(默认项目)并将其隐藏在下拉列表中

时间:2016-07-26 07:02:35

标签: android android-spinner

我使用下面的代码选择我的列表的最后一项作为微调器的提示(即微调器中的默认选定项),并尝试从下拉菜单中隐藏它。

List<String> rfpType = new ArrayList<>();
rfpType.add("Job");
rpType.add("Talent");  
rfpType.add("Vendor");
rfpType.add("Sponsor");
rfpType.add("RFP Title");

HintAdapter dataAdapter1 = new HintAdapter(getActivity(), android.R.layout.simple_list_item_1, rfpType);
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerRFPType.setAdapter(dataAdapter1);
spinnerRFPType.setSelection(dataAdapter1.getCount());

HintAdapter

class HintAdapter extends ArrayAdapter<String>{

    public HintAdapter(Context context, int theLayoutResID , List<String> list){
        super(context, theLayoutResID, list);
    }

    @Override
    public int getCount() {
        // don't display last item. It is used as hint.
        int count = super.getCount();
        return count > 0 ? count-1 : count;
    }

}

但它显示第二个最后一项为默认值。并隐藏我想要用作提示的最后一项。建议我一个正确的解决方案。

2 个答案:

答案 0 :(得分:0)

将此<ul class="tab"> <li><a href="#" class="tablinks" onclick="openCity(event, 'London')">London</a></li> <li><a href="#" class="tablinks" onclick="openCity(event, 'Paris')">Paris</a></li> <li><a href="#" class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</a></li> </ul> <div id="London" class="tabcontent"> <h3>London</h3> <p>London is the capital city of England.</p> </div> <div id="Paris" class="tabcontent"> <h3>Paris</h3> <p>Paris is the capital of France.</p> </div> <div id="Tokyo" class="tabcontent"> <h3>Tokyo</h3> <p>Tokyo is the capital of Japan.</p> </div>添加到您的微调器。

android:prompt="@string/country_prompt"

答案 1 :(得分:0)

您需要在适配器类中实现以下方法:

它会帮助你:

同样对于getCount,返回Count不会降低

 @Override
 public View getDropDownView(int position, View convertView,
        ViewGroup parent) 
 {
    LayoutInflater inflater = getLayoutInflater(null);
    convertView = inflater.inflate(theLayoutResID, parent,
            false);
    convertView= null;

    if(position == list.size() - 1)
    {
        holder.textView.setVisibility(View.GONE);
        convertView= holder;
    }
    else{
         convertView= super.getDropDownView(position, null, parent);
    }
    return convertView;

}