java - 除两个微调器值

标签 java android spinner

我已经设法让微调器值显示在文本框中,但我需要将这些值彼此分开。所以我必须将微调器 1 的值除以微调器 2 的值。但是我不确定如何执行此操作。

这是我的代码:

public class CurrencyActivity extends Activity {


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


 final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
 final Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
 final EditText etResult = (EditText) findViewById(R.id.etResult);
 final MyData items[] = new MyData[3];
 items[0] = new MyData("EUR, Euro","1.00");
 items[1] = new MyData("GBP, British Pound","5.00");
 items[2] = new MyData("USD, US Dollar","15.00");

ArrayAdapter<MyData> adapter = new ArrayAdapter <MyData>(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {


    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
        MyData d = items[pos];
        etResult.setText(d.getValue());
}

    @Override
    public void onNothingSelected(AdapterView parent){
        //Do nothing

}
});



spinner2.setAdapter(adapter);
spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
        MyData d = items[pos];
        etResult.setText(d.getValue());
        }

    @Override
    public void onNothingSelected(AdapterView parent){
        //Do nothing
    }
 });

我创建了一个具有这些方法的 MyData 类

public class MyData {

    public MyData(String spinnerText, String value){
        this.spinnerText = spinnerText;
        this.value = value;
    }
    public String getSpinnerText(){
        return spinnerText;
    }
    public String getValue(){
        return value;
    }
    public String toString(){
        return spinnerText;
    }
    String spinnerText;
    String value;

}

谢谢

最佳答案

有一个简单的解决方案,但我认为您在这里混合了代码。
Integer.parseInt(d.getValue()) 将为您提供一个有效的 int,您可以在其上执行任何数学函数,但在代码中您实际上会覆盖 MyData d 当每个微调器选择更改时。
您可以向 MyData 类添加另一个字段,该字段将存储您想要的任何值作为 int,然后只需使用 mydata.getVal() 假设 mydata 属于 MyData 类型/类。

关于java - 除两个微调器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18110216/

相关文章:

android - 调用 "Choose screen lock"屏幕的 Intent 是什么?

java - 为什么即使 myLocation 是全局变量,当 onSuccess() 终止时 myLocation 也会变为 null?

android - ActionBar 中的多个微调器

java - 在静态上下文中存储对实例方法的引用

java - Whitelabel 错误页面 Spring boot 和 AWS RDS

android - 全新安装 Android Studio + 模拟器,模拟器吃 CPU + 电池

android - Spinner 无法加载整数数组?

java - 如何检查用户是否在微调器中选择了一个选项

java - eclipse 不编译项目

java - 尝试让文件路径适用于 Java/Netbeans 中的所有版本