用Spinner将EditText值相乘
问题描述:
我目前正在为学校开发货币换算器项目。 我有货币(美元,欧元等)和数值(6.54,9.56等)的阵列。用Spinner将EditText值相乘
我有两个微调器和一个EditText,你可以选择从一个微调器中的单元和另一个微调器中的单元。然后它应该考虑editText中的数量并在textView中显示“实时”结果。如果你改变spinners或editText,textview中的值应该直接更新。
比方说,插在EDITTEXT值是10.0,我们希望把它从美元到欧元转换,计算将是这样的:10.0 * 6.54/9.56 =
但我想不出如何将editText添加到计算中,现在只会将spinner1中的值添加到spinner2中的值中。
这里是strings.mxl
<resources>
<string name="app_name">CurrencyConverter3</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">Dinner Time</string>
<string name="textView1Text">From:</string>
<string name="textView2Text">To:</string>
<string name="textView3Text">Amount:</string>
<string name="textView4Text">Amount:</string>
<string-array name="currency">
<item >Choose currency</item>
<item >AUD</item>
<item >USD</item>
<item >SEK</item>
<item >EUR</item>
<item >YEN</item>
</string-array>
<string-array name="price">
<item >0</item>
<item >6.91</item>
<item >6.54</item>
<item >1.00</item>
<item >9.56</item>
<item >0.0837</item>
</string-array>
这里是mainactivity.java
package com.example.xxx.currencyconverter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.EditText;
public class MainActivity extends Activity {
private String [] currency;
private ArrayAdapter<String> adapter;
private Spinner spin1, spin2;
private EditText amount;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpTheSpinners();
}
private void setUpTheSpinners() {
currency = getResources().getStringArray(R.array.currency);
adapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, currency);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
AdapterView.OnItemSelectedListener listener = new currencySelectedListener();
spin1 = (Spinner)findViewById(R.id.spinner1);
spin1.setAdapter(adapter);
spin1.setOnItemSelectedListener(listener);
spin2 = (Spinner)findViewById(R.id.spinner2);
spin2.setAdapter(adapter);
spin2.setOnItemSelectedListener(listener);
}
private void calculateSum() {
String [] price = getResources().getStringArray(R.array.price);
int index1 = spin1.getSelectedItemPosition();
int index2 = spin2.getSelectedItemPosition();
double cost1 = Double.parseDouble(price[index1]);
double cost2 = Double.parseDouble(price[index2]);
double totalCost = cost1 + cost2;
TextView totalCostText = (TextView)findViewById(R.id.textView5);
totalCostText.setText("" + totalCost);
}
private class currencySelectedListener implements AdapterView.OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
calculateSum();
}
public void onNothingSelected(AdapterView<?> parent) {
}
}
}
谢谢配合“的EditText
答
- 获得当前编辑的文本值。 getText()。toString()“
- 解析字符串为双
- 乘法与汇率
- 解析输出字符串
-
集编辑文本值的输出u从第4步得到
private void convert() { String [] price = getResources().getStringArray(R.array.price); int index = spinner.getSelectedItemPosition(); double curr_ratio = Double.parseDouble(price[index]); EditText et_value = (EditText)findViewById(R.id.edit_text); double value = Double.parseDouble(et_value.getText().toString()); et_value.setText(String.valuOf(value*curr_ratio)); }
您好,感谢为答复,但仍然无法正常工作。当我使用该解决方案时,应用程序崩溃 – Adde
很难预料,不会在这里发布错误日志 – uguboz
我现在已经添加了错误日志。谢谢 – Adde