簡単なプロセスを実行しています
ユーザーが EditText に数値を入力し、ラジオ ボタンを選択してから計算を押すだけです。ラジオ ボタンは if ステートメントに接続されており、このステートメントは、EditText に表示されている数値を置き換えて返される float に向けられます。ただし、数値を入力する前に計算ボタンを押すと、数値形式の例外が発生し、アプリがクラッシュするようです。
今のところ、これが発生する可能性を減らすために EditText にデフォルト値を入力しますが、if ステートメントなどを使用して例外をすべて回避する方法があるかどうか疑問に思っていました。
ここにいくつかのサンプルコードがあります
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import com.admob.android.ads.AdManager;
import com.admob.android.ads.AdView;
import com.medialets.android.analytics.MMAnalyticsManager;
public class Area extends Activity {
private EditText text9;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.area);
text9 = (EditText)findViewById(R.id.EditText09);
public void myClickHandler09(View view){
switch (view.getId()) {
case R.id.Button09:
RadioButton SeveralRadioButtons = (RadioButton) findViewById (R.id.RadioButton901);
float inputValue = Float.parseFloat(text9.getText().toString());
String checkValue = String.valueOf(inputValue);
if (checkValue.equals("")){
text9.setText(String.valueOf(""));
} else {
if (SeveralRadioButtons.isChecked()) {
text9.setText(String
.valueOf(conversionfactor(inputValue)));
}
break;
}}}
private double conversionfactor(float f){
return f * 6.4516;
}
(SeveralRadioButtons) が呼び出される場所には、実際にはいくつかのラジオ ボタンと、それぞれに if ステートメントとプライベート double があります。
ご覧のとおり、問題の修正を既に試みましたが、数値形式の例外が引き続き表示されます。