Android 在微调器中使用项目作为提示(默认项目),并将其隐藏在下拉列表中
我使用下面的代码选择列表的最后一项作为微调器的提示(即微调器中的默认选定项),并试图从下拉菜单中隐藏它Android 在微调器中使用项目作为提示(默认项目),并将其隐藏在下拉列表中,android,android-spinner,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 =
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());
List rfpType=new ArrayList();
rfpType.add(“作业”);
rpType.添加(“人才”);
RFP类型。添加(“供应商”);
RFP类型。添加(“发起人”);
RFP类型。添加(“RFP标题”);
HintAdapter dataAdapter1=新的HintAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,rfpType);
dataAdapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
喷丝头RfpType.setAdapter(数据适配器1);
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;
}
}
类HintAdapter扩展了ArrayAdapter{
公共HintAdapter(上下文上下文,int-theLayoutResID,列表){
超级(上下文、LayoutResid、列表);
}
@凌驾
public int getCount(){
//不显示最后一项。它用作提示。
int count=super.getCount();
返回计数>0?计数-1:计数;
}
}
但它将最后一项显示为默认项。并隐藏我要用作提示的最后一项。给我一个正确的解决方案 将此
android:prompt=“@string/country\u prompt”
添加到微调器中
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/country_arrays"
android:prompt="@string/country_prompt" />
将此
android:prompt=“@string/country\u prompt”
添加到微调器中
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/country_arrays"
android:prompt="@string/country_prompt" />
您需要在适配器类中实现以下方法: 它将帮助您: 对于getCount返回计数,也不要减少它
@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;
}
您需要在适配器类中实现以下方法: 它将帮助您: 对于getCount返回计数,也不要减少它
@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;
}
更改喷丝头RFPTYPE.setSelection(dataAdapter1.getCount()-1);到spinnerRFPType.setSelection(dataAdapter1.getCount());嘿,它按照预期工作..我写了与上面相同的代码没有变化。检查屏幕截图。而这一个@shakebayaz我也认为它应该起作用。但不幸的是,事实并非如此。知道如何更正吗?@h8pathak zip并将您的代码发送给我。它不可能不起作用更改spinnerRFPType.setSelection(dataAdapter1.getCount()-1);到spinnerRFPType.setSelection(dataAdapter1.getCount());嘿,它按照预期工作..我写了与上面相同的代码没有变化。检查屏幕截图。而这一个@shakebayaz我也认为它应该起作用。但不幸的是,事实并非如此。知道怎么更正吗?@h8pathak-zip并将您的代码发送给我。它不可能不起作用。这不是我想要的解决方案。这还需要一行代码才能工作。这不是我想要的解决方案。这还需要一行代码才能工作。