私はAddItem
という名前のアクティビティを持っています。これには、ユーザーが入力したいくつかのフィールドが含まれています。これを別のアクティビティに渡そうとしています。私はこれを行うことにより、最初の2つのフィールドを取得することができた:番号を取得しようとすると、私の活動がクラッシュするのはなぜですか?
String messageText = ((EditText) findViewById(R.id.inputName)).getText().toString();
String discriptionText = ((EditText) findViewById(R.id.description)).getText().toString();
上記のコードは、楽しさを働いていたが、その後私はそのようにのように、二重にキャスト別の値を取得しようとしました:
double Latitude = Double.parseDouble(((EditText) findViewById(R.id.Latitude)).getText().toString());
これは長くて複雑ですが、基本的にはStringを解析してdouble値に変換する以外は同じことをやっています。私はこれが問題のコードであると判断しました。なぜなら、私がコメントアウトすると、残りのアプリケーションはうまく動作するからです。あなたが初期化されていないビューからonSaveItemButtonメソッドを呼び出している
public class AddItem extends AppCompatActivity {
EditText inputedTask, inputedDescription, inputedLatitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_item);
inputedTask = (EditText) findViewById(R.id.inputName);
inputedDescription = (EditText) findViewById(R.id.description);
inputedLatitude = (EditText) findViewById(R.id.Latitude);
}
public void onSaveItemButton(View view) {
String messageText = ((EditText) findViewById(R.id.inputName)).getText().toString();
String discriptionText = ((EditText) findViewById(R.id.description)).getText().toString();
double Latitude = Double.parseDouble(((EditText) findViewById(R.id.Latitude)).getText().toString());
if (messageText.equals(""));
else {
Intent intent = new Intent();
intent.putExtra(Intent_Constant.INTENT_MESSAGE_FIELD, messageText);
setResult(Intent_Constant.INTENT_RESULT_CODE, intent);
finish();
}
}
}
あなたは必ずあなたのEditTextです適切にフォーマットされたDoubleを含んでいますか? – AnixPasBesoin
あなたが受け取っているエラーを教えてください。 –
@Selvinそれはどういう意味ですか? –