我有一个填充有整数值的微调器,并且我试图提取所选的值.我设法用下面的代码行:
Integer.decode(spinner.getSelectedItem().toString())
但这似乎需要很多简单的 *** 作.
我正在使用定义如下的字符串数组创建微调器:
在strings.xml中
<string-array name="settings_cells_array"> <item>1</item> <item>2</item> <item>3</item> <item>4</item></string-array>
在活动onCreate函数中:
Spinner spinner = (Spinner) findVIEwByID(R.ID.num_cells_spinner);// Create an ArrayAdapter using the string array and a default spinner layoutArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromresource(this, R.array.settings_cells_array, R.layout.my_layout);// Specify the layout to use when the List of choices appearsadapter.setDropDownVIEwResource(R.layout.my_layout);// Apply the adapter to the spinnerspinner.setAdapter(adapter);
在我看来,由于微调器是使用字符串数组创建的,因此.toString()调用似乎过多,但我想这会为使用自定义对象或类似对象构建的适配器和微调器留出灵活性的空间.
无论如何,我的问题是这样的:
是否有更好的方法从以此方式定义的微调器中提取整数,或者是否有更好的方法来设置我的微调器,使其与int更好地配合?
解决方法:
您可以做的是首先从资源中获取数组,然后创建一个Integer数组并将其提供给ArrayAdapter< Integer>.代替.像这样:
Spinner spinner = (Spinner) findVIEwByID(R.ID.num_cells_spinner);String[] array = getResources().getStringArray(R.array.settings_cells_array);Integer[] intArray = new Integer[array.length];for(int i = 0; i < array.length; i++) { intArray[i] = Integer.parseInt(array[i]);}// Create an ArrayAdapter using the string array and a default spinner layoutArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,androID.R.layout.simple_spinner_dropdown_item, intArray);// Apply the adapter to the spinnerspinner.setAdapter(adapter);
然后只需将getSelectedItem()的结果转换为Integer即可:
Integer i = (Integer)spinner.getSelectedItem();
总结 以上是内存溢出为你收集整理的Java-Android:从微调器中获取整数的更好方法全部内容,希望文章能够帮你解决Java-Android:从微调器中获取整数的更好方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)