将值与spinner关联

时间:2017-01-04 16:56:28

标签: android spinner mathematical-expressions

我想在我的应用程序中实现某些数学计算,但是,它有一个涵盖年龄组和数据的变量,我将在实践中显示:'AdequaçãodaCB = CB obtida / CB百分位数50 * 100'。这是公式,其中变量“CB百分位数50”具有28种不同的表达形式,例如,从1到2岁它具有值16,从2到3具有值16.3,从3到4的值为16.8,依此类推......如何让微调器检查年龄数据并将该值返回到数学表达式中?

我的字符串文件

<string name="fxetaria">Selecione a Faixa Etária</string>
    <string-array name="faixaet">
        <item>1 a 1.9</item>
        <item>2 a 2.9</item>
        <item>3 a 3.9</item>
        <item>4 a 4.9</item>
        <item>5 a 5.9</item>
        <item>6 a 6.9</item>
        <item>7 a 7.9</item>
        <item>8 a 8.9</item>
        <item>9 a 9.9</item>
        <item>10 a 10.9</item>
        <item>11 a 11.9</item>
        <item>12 a 12.9</item>
        <item>13 a 13.9</item>
        <item>14 a 14.9</item>
        <item>15 a 15.9</item>
        <item>16 a 16.9</item>
        <item>17 a 17.9</item>
        <item>18 a 24.9</item>
        <item>25 a 29.9</item>
        <item>30 a 34.9</item>
        <item>35 a 39.9</item>
        <item>40 a 44.9</item>
        <item>45 a 49.9</item>
        <item>50 a 54.9</item>
        <item>55 a 59.9</item>
        <item>60 a 64.9</item>
        <item>65 a 69.9</item>
        <item>70 a 74.9</item>
    </string-array>

我的活动:

public class adeqcbh extends AppCompatActivity {

    Spinner spinner;
    ArrayAdapter<CharSequence> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_adeqcbh);

        spinner = (Spinner)findViewById(R.id.spinner);
        adapter = ArrayAdapter.createFromResource(this, R.array.faixaet, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是让另一个数组具有值(与第一个数组相同的数量)。

<string-array name="faixaet_values">
  <item>16</item>
  <item>16.3</item>
  ...
<string-array>

然后,在你的onItemSelected方法中,只需从新的字符串数组中获取值,就像这样;

String valueString = getResources().getStringArray(R.array.faixaet_values)[position - 1];
float value;
try {
  value = Float.valueOf(valueString);
} catch(NumberFormatException e) {
  Log.e(TAG, "This is not a number");
}