【发布时间】:2017-05-26 17:02:28
【问题描述】:
所以我试图有一个微调器,您可以在其中选择要从 GBP 转换为的货币,输入一个 GBP 值,然后通过按下按钮从微调器转换为所选货币。转换后的值将出现在下面的文本视图中
这是我正在使用的转换活动中的以下代码,应用程序在尝试从主菜单切换到此布局时崩溃,但是在我尝试添加乘法代码之前它正在工作。提前致谢。
public class Convert extends AppCompatActivity {
final EditText currency_input = (EditText) findViewById(R.id.editText_currency_input);
final TextView answer = (TextView) findViewById(R.id.textView_convert_to);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.convert);
Spinner spinner_convert_from = (Spinner) findViewById(R.id.spinner_convert_from);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.currency_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_convert_from.setAdapter(adapter);
}
private void USD() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.2798));
}
private void EUR() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.14502));
}
private void AUD() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.71911));
}
private void CAD() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1.7226));
}
private void JPY() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*142.482));
}
private void CHF() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))* 1.24662));
}
private void CNY() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))* 8.7714));
}
private void KRW() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))*1430.8));
}
private void SEK() {
answer.setText(String.valueOf(Double.valueOf(String.valueOf(currency_input.getText()))* 11.1187));
}
public class planOnClickListener implements AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int pos,
long id) {
parent.getItemAtPosition(pos);
if (pos == 0) {
USD();
} else if (pos == 1) {
EUR();
} else if (pos == 2) {
AUD();
} else if (pos == 3) {
CAD();
} else if (pos == 4) {
JPY();
} else if (pos == 5) {
CHF();
} else if (pos == 6) {
CNY();
} else if (pos == 7) {
KRW();
} else if (pos == 8) {
SEK();
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}
}
【问题讨论】:
-
如果崩溃了 Logcat (Android Monitor) 中有对应的入口请分享
-
对不起,我对 Android Studio 很陌生,我不太确定我在 Logcat 中寻找什么,因为当我在模拟器中运行应用程序时,其中有 1000 多条消息.
-
是的,即使在模拟器中也有很多 :) 有一个搜索字段,您可以输入例如您的包名称以缩小搜索范围。或者,当您正在寻找崩溃报告时,您可以切换日志消息的级别(从详细到错误的几个级别)
-
所以我再次运行应用程序并在 Logcat 中搜索类名“Convert”并将其过滤为问题级别的“错误”,this 是我得到的,再次不是确定这是否是您正在寻找的内容,并为不完全了解我在做什么而提前道歉。
-
是的,我一直在寻找这样的东西。在我看来,您的 Convert 活动无法正常启动,但我不知道 Android 运行时决定放弃的确切时间。您的代码中至少有一件事看起来可能是一个问题:您对最终 EditText 和 TextView 的声明。请尽量不要使它们成为最终的,只在 onCreate() 中设置它们(如 ... = (EditText)findViewById(...) )
标签: java android spinner currency multiplication