Spinner 问题:如何在 Spinner 中调用列表项并分别为每个项使用数学?

惠特洛C

我有一段代码,我一直在处理四种转换比率,具体取决于微调器中选择的单位转换选项。根据用户选择的内容,我将如何调用每个单独的比率。

例如,如果在微调器中选择了选项 1,则要使用的转换将是Miles to KilometersresultOutput = userInput * 1.6093由于转换将是用户输入的英里数,则公里结果为miles * 1.6093. 现在我如何将那个和多个其他 if 语句注入到这个源代码中?我会创建一个新方法还是直接在里面做public void onItemSelected

我会输入: if(conversionType = list.get(0)){ resultOutput = userInput * 1.6093 ?

我只需要一个大致的方向,因为我已经坚持了几天。感谢您提供任何帮助!

主活动.java :

package com.example.corey.unitconversionappbycoreywhitlow;

import java.util.ArrayList;
import java.util.List;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements OnItemSelectedListener {

    Spinner spinnerConversions;
    TextView conversionFrom, conversionTo, outputResult;
    EditText userInput;
    List<String> list = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        conversionFrom = findViewById(R.id.fromValue);
        conversionTo = findViewById(R.id.toValue);
        outputResult = findViewById(R.id.resultOutput);
        userInput = findViewById(R.id.numInput);
    }

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
        spinnerConversions = findViewById(R.id.conversionSpinner);
        spinnerConversions.setOnItemSelectedListener(this);

        list.add("Miles to Kilometers");
        list.add("Kilometers to Miles");
        list.add("Inches to Centimeters");
        list.add("Centimeters to Inches");
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, list);

        adapter.setDropDownViewResource
             (android.R.layout.simple_spinner_dropdown_item);    

        spinnerConversions.setAdapter(adapter);
        String conversionType = list.get(1);
        String[] units = conversionType.split("to");
        String conFrom = units[0].trim();
        String conTo = units[1].trim();

        conversionFrom.setText(conFrom);
        conversionTo.setText(conTo);
    }

    public void onNothingSelected(AdapterView<?> parent){}
}
用户8959091

我对您的代码进行了更改:

public class MainActivity extends AppCompatActivity implements OnItemSelectedListener {

    Spinner spinnerConversions;
    TextView conversionFrom, conversionTo, outputResult;
    EditText userInput;
    List<String> list = new ArrayList<>();

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

        conversionFrom = findViewById(R.id.fromValue);
        conversionTo = findViewById(R.id.toValue);
        outputResult = findViewById(R.id.resultOutput);
        userInput = findViewById(R.id.numInput);

        spinnerConversions = findViewById(R.id.conversionSpinner);

        list.add("Miles to Kilometers");
        list.add("Kilometers to Miles");
        list.add("Inches to Centimeters");
        list.add("Centimeters to Inches");
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, list);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerConversions.setAdapter(adapter);

        String conversionType = list.get(0);
        String[] units = conversionType.split("to");
        String conFrom = units[0].trim();
        String conTo = units[1].trim();

        conversionFrom.setText(conFrom);
        conversionTo.setText(conTo);

        spinnerConversions.setOnItemSelectedListener(this);
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Double d = 0.0;
                try {
                    d = Double.parseDouble(userInput.getText().toString().trim());
                } catch (NumberFormatException e) {
                    e.printStackTrace();
                }
        switch (position){
            case 0:
                outputResult.setText(d * 1.6093 + "");

                break;
            case 1:
                //Do something

                break;
            case 2:
                //Do something

                break;
            case 3:
                //Do something

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

}

你有很多的初始化代码onItemSelected,但它应该被放置在您的活动的onCreate()
switch语句允许您选择如何处理用户的选择做。您将在那里进行所需的转换。
onCreate()你把所有的初始化代码:变量和观点的声明,设置适配器和听众微调等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Spinner Android中添加项目

来自分类Dev

如何在Spinner for Android中对齐文本?

来自分类Dev

如何在Spinner中获得json响应?

来自分类Dev

如何在Recyclerview中使用Spinner?

来自分类Dev

如何在Spinner Kotlin中使用ArrayAdapter

来自分类Dev

如何在WebView中使用Spinner?

来自分类Dev

Spinner setOnItemSelectedListener问题

来自分类Dev

如何启用/禁用 Spinner 下拉列表

来自分类Dev

如何清除Android中Spinner中的错误

来自分类Dev

如何使用BaseAdapter使setSelection成为Spinner?

来自分类Dev

ANDROID>如何使用Spinner设置JSON数据

来自分类Dev

如何使用 Firebase 数据填充 Spinner?

来自分类Dev

如何在Ajax调用上添加UI Spinner?

来自分类Dev

Spinner中的条件条目

来自分类Dev

使用JSON填充Spinner

来自分类Dev

使用HashMap填充Spinner?

来自分类Dev

使用JSON填充Spinner

来自分类Dev

如何在Android中动态更新Spinner中的数据?

来自分类Dev

如何在Android的Spinner View中添加左绘制

来自分类Dev

如何在Android中为Spinner设置错误消息?

来自分类Dev

如何在JavaFX Spinner组件中启用向上/向下键

来自分类Dev

如何在JavaFX Spinner组件中启用向上/向下键

来自分类Dev

如何在Android中使用CustomAdapter创建Spinner-list

来自分类Dev

如何在Android中使用键值实现Spinner?

来自分类Dev

如何在FXML中使用预定义的Spinner样式类

来自分类Dev

如何在Android中使用键值实现Spinner?

来自分类Dev

如何在我的主类中使用Fragment的Spinner事件?

来自分类Dev

如何在 Android 上的 Spinner 中使用 itemClickListener

来自分类Dev

在 AJAX 调用中显示和隐藏 Spinner 的问题