我需要将默认值文本“选择你的设备”值设置为我的微调器下拉列表,我把它作为列表项,所以它作为一个下拉列表项,我隐藏下拉列表,因为这我的下拉菜单中有一个空白区域.
我该怎么做?
这是我用过的代码
mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(false); /*Setup a Spinner*/ mToolbarSpinner = (Spinner) findViewById(R.id.spinner_toolbar); /*Manage the spinner*/ mToolbarSpinnerNavigationItems = new ArrayList<SpinnerNavItem>(); mToolbarSpinnerNavigationItems.add(new SpinnerNavItem("Select your Seebo",R.drawable.deviceonline)); /*setting the mToolbarSpinnerNavigationItems to list_item_title_navigation.xml*/ mArrayAdapter = new ArrayAdapter(this,R.layout.list_item_title_navigation,mToolbarSpinnerNavigationItems){ @Override public View getView(int position,View convertView,ViewGroup parent) { // remember to inflate custom layout for spinner item // then set anything you want here // remember to use convertView.findViewById(),not just findViewById() // this is an example // inflate layout convertView = View.inflate(MainActivity.this,null); // get view TextView tvText1 = (TextView) convertView.findViewById(R.id.devicetitle); ImageView imgIcon = (ImageView) convertView.findViewById(R.id.deviceicon); imgIcon.setVisibility(View.GONE); //imgIcon.setImageResource(mToolbarSpinnerNavigationItems.get(position).getIcon()); // set content tvText1.setText(mToolbarSpinnerNavigationItems.get(position).getTitle()); // return return convertView; } @Override public View getDropDownView(int position,ViewGroup parent) { return convertView; } }; //setting adapter to Spinner mToolbarSpinner.setAdapter(mArrayAdapter);
解决方法
至于我对你的问题的理解,你可以做的是通过让它从-1而不是0开始索引来覆盖Spinner视图,这样就可以使数组的第一个条目成为你想要的那个.
Select your Device
StackOverflow上已存在多个问题,您可以参考这些问题并进行覆盖,建议使用通用解决方案.
参见here.
或者反过来说,你也可以使用这段代码set the customized default position of spinner.
ArrayAdapter<String> spinnerAdap = (ArrayAdapter<String>) mySpinner.getAdapter(); int spinnerPosition = messgAdap.getPosition(theDefaultValue); mySpinner.setSelection(spinnerPosition);