Android Spinner技术问询:整数值赋值/转换及是否需用ArrayAdapter
问题解答
一、获取Spinner选中值并转换为整数用于计算
你可以通过两种方式获取Spinner的选中分值,核心是给每个Spinner设置选中监听器,在用户选择时记录分值:
方法1:通过选中的字符串转换为整数
因为你的string-array中每个item的内容就是数字字符串,直接获取后转成int即可:
// 以第一个Spinner为例,先获取实例 Spinner spinner1 = findViewById(R.id.spinner1); spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // 获取选中的字符串并转为整数 String selectedStr = parent.getItemAtPosition(position).toString(); int score = Integer.parseInt(selectedStr); // 将score存入全局变量(比如一个int数组scores[8]),用于后续计算总分 scores[0] = score; } @Override public void onNothingSelected(AdapterView<?> parent) { // 可选:处理未选中的情况,比如默认赋值1分 scores[0] = 1; } });
方法2:通过选中位置直接计算分值
由于你的rating数组是按1到5的顺序排列的,选中位置position(从0开始)加1正好对应分值,这种方式无需字符串转换,效率更高:
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { int score = position + 1; scores[0] = score; } @Override public void onNothingSelected(AdapterView<?> parent) { scores[0] = 1; } });
计算总分并显示反馈
当所有Spinner都有选中值后,遍历存储分值的数组求和,再根据总分区间判断反馈:
// 计算总分 int totalScore = 0; for(int score : scores){ totalScore += score; } // 根据总分判断反馈(示例区间可根据需求调整) String feedback; if(totalScore >= 32){ // 8个问题,每题最高5分,总分40,32及以上为良好 feedback = "良好"; }else if(totalScore >= 24){ feedback = "一般"; }else{ feedback = "较差"; } // 显示反馈,比如用TextView TextView feedbackTv = findViewById(R.id.feedback_text); feedbackTv.setText(feedback);
二、是否仍需使用ArrayAdapter?
如果你的布局中已经通过android:entries="@array/rating"设置了Spinner的下拉选项,不需要手动创建ArrayAdapter——系统会自动基于你定义的string-array生成默认的ArrayAdapter,完成下拉列表的绑定。
但如果需要自定义Spinner的显示样式(比如修改下拉项的文字颜色、背景,或者使用自定义布局),则需要手动创建ArrayAdapter并设置,示例如下:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.rating, R.layout.custom_spinner_item); adapter.setDropDownViewResource(R.layout.custom_spinner_dropdown_item); spinner1.setAdapter(adapter);
内容的提问来源于stack exchange,提问作者acha
相关产品推荐
相关产品推荐

