如何在Android中设置spinner下拉列表的默认值?
我需要将默认值文本选择您的设备值设置为我的微调器下拉列表,我将其作为列表项,使其作为下拉列表项,并隐藏下拉列表,因为我在下拉列表中得到一个空格 我该怎么做 这是我使用的代码如何在Android中设置spinner下拉列表的默认值?,android,android-spinner,Android,Android Spinner,我需要将默认值文本选择您的设备值设置为我的微调器下拉列表,我将其作为列表项,使其作为下拉列表项,并隐藏下拉列表,因为我在下拉列表中得到一个空格 我该怎么做 这是我使用的代码 mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowHomeEnabled(true);
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, R.layout.list_item_title_navigation, 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, View convertView, ViewGroup parent) {
return convertView;
}
};
//setting adapter to Spinner
mToolbarSpinner.setAdapter(mArrayAdapter);
你可以用like
final ArrayList<String> strDeviceArr = new ArrayList<>();
strDeviceArr.add("Select device");
strDeviceArr.add("Nexus X");
strDeviceArr.add("Nexus XL");
spnrDevice.setAdapter(new ArrayAdapter<>(MainActivity.this, R.layout
.layout_spinner_textview, R.id.textView, strDeviceArr));
spnrDevice.setSelection(0); //set default selection to 0
spnrDevice.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String valueSelected = strDeviceArr.get(position);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
就我对你的问题的理解而言,你可以做的是覆盖微调器视图,让它从-1开始索引,而不是从0开始索引,从而使数组的第一个条目成为你想要的 选择您的设备 StackOverflow上已经存在多个问题,您可以参考这些问题,为了进行覆盖,我们建议了一个通用的解决方案 参考 或者反过来,您也可以,您自己的方式,使用以下代码片段:
ArrayAdapter<String> spinnerAdap = (ArrayAdapter<String>) mySpinner.getAdapter();
int spinnerPosition = messgAdap.getPosition(theDefaultValue);
mySpinner.setSelection(spinnerPosition);
用于从下拉列表中选择项目: 刚设置完适配器
spinner.setAdapter(yourAdapter);
spinner.setSelection(position);
//position is integer starting from 0 to n-1 (n is number of items in the list or array). This will set nth item as the selected and visible item to the user.
使用以下顺序:
dropdown = (Spinner) findViewById(R.id.target_dropdown);
List<String> targetList = new ArrayList<>(targetSet);
targetList.add(0, "Select a device");
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this,
android.R.layout.simple_spinner_dropdown_item,
targetList
);
dropdown.setAdapter(adapter);
dropdown.setSelection(0);
将此选项用于默认选择
请查找下面的代码
下面的检查答案可能重复我尝试了这个,但我没有为我工作。我正在使用DropDown通过这个链接,它会给你清晰的想法…它应该是spinner.setSelectionposition而不是spinner.setSelectedposition。
genderSpinner!!.setSelection(indexNo)
val arrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, gender_array)
genderSpinner!!.adapter = arrayAdapter as SpinnerAdapter?
genderSpinner!!.setSelection(index_no)
genderSpinner!!.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
select_gender = parent?.getItemAtPosition(position).toString()
}
override fun onNothingSelected(parent: AdapterView<*>?) {
}
}