gpt4 book ai didi

java - Android:从微调器获取整数的更好方法

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:50 25 4
gpt4 key购买 nike

我有一个用整数值填充的微调器,我正在尝试提取选定的值。我设法使用以下代码行:

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>

在 Activity 的 onCreate 函数中:

Spinner spinner = (Spinner) findViewById(R.id.num_cells_spinner);

// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.settings_cells_array, R.layout.my_layout);

// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(R.layout.my_layout);

// Apply the adapter to the spinner
spinner.setAdapter(adapter);

在我看来,由于微调器是使用字符串数组创建的,因此 .toString() 调用似乎过多,但我认为这为自定义构建的适配器和微调器留出了灵 active 对象或类似的东西。

无论如何,我的问题是:
是否有更好的方法从以这种方式定义的微调器中提取整数,或者是否有更好的方法来设置我的微调器,使其更好地与 ints 一起播放?

最佳答案

您可以做的是首先从资源中获取数组,然后创建一个整数数组并将其提供给 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 layout
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,
android.R.layout.simple_spinner_dropdown_item, intArray);

// Apply the adapter to the spinner
spinner.setAdapter(adapter);

然后直接转换getSelectedItem()的结果至 Integer :

Integer i = (Integer)spinner.getSelectedItem();

关于java - Android:从微调器获取整数的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27157685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com