が見つかりません。これは実際には私が見ていない単純な解決策だと確信しています。しかし、いくつかの機能(無関係なように見える)を変更しましたが、現在はnullポインタ例外エラーが発生しています。もし誰かが私のコードを見て助けてくれたら。私は自分のコードの重要な部分に絞り込むことができました。NullPointerExceptionエラーが発生し続ける場合は、
public void calculate() {
double leftoverLiquid = 0;
TextView shots = (TextView) this.findViewById(R.id.shots_amount);
double shotsDouble = 0;
if(shots != null) {
shotsDouble = Double.valueOf(shots.getEditableText().toString());
}
TextView powder = (TextView) this.findViewById(R.id.powder_amount);
double powderDouble = 0;
if(powder != null) {
powderDouble = Double.valueOf(powder.getText().toString());
}
TextView add1 = (TextView) this.findViewById(R.id.additive_amount_1);
double add1Double = 0;
if(add1 != null) {
add1Double = Double.valueOf(add1.getEditableText().toString());
}
TextView add2 = (TextView) this.findViewById(R.id.additive_amount_2);
double add2Double = 0;
if(add2 != null) {
add2Double = Double.valueOf(add2.getEditableText().toString());
}
leftoverLiquid = size() - (powderDouble + shotsDouble + add1Double + add2Double);
TextView liquid = (TextView) findViewById(R.id.liquid_amount);
textViewLiquidAmount = liquid;
liquid.setText(Double.toString(leftoverLiquid));
}
のNullPointerException:ここ
private Dialog shotTextDialog() {
final View layout = View.inflate(this, R.layout.amount_edittext, null);
final EditText savedText = (EditText) layout.findViewById(R.id.amountEditText);
textViewShotsAmount = (TextView)findViewById(R.id.shots_amount);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Choose how many shots:");
builder.setPositiveButton("Save", new Dialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
myTextString = savedText.getText().toString().trim();
TextView sizeText = (TextView)findViewById(R.id.shots_amount);
sizeText.setText(myTextString);
Toast.makeText(getApplicationContext(), "You have chosen " + myTextString + " shots for your drink", Toast.LENGTH_SHORT).show();
}
});
builder.setView(layout);
return builder.create();
}
は、計算のためのコードを()である:ここ
tableRowShots = (TableRow)findViewById(R.id.shots_row);
tableRowShots.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
shotTextDialog().show();
calculate();
}
});
はshotTextDialog()のコードです: このコードは、警告ダイアログをトリガエラーはコード行の近くのどこかにあるようです:
shotsDouble = Double.valueOf(shots.getEditableText().toString());
誰かが私が見逃しているものは見えますか?
if(shots.getText()。toString()。length()> 0) shotsDouble = Double.valueOf(shots.getText()。toString()); このような値を得る... –
いくつかの行x?スタックトレースをポストしないと、正確な行が示されます。 – vertti
アクティビティのレイアウトxmlにTextViews、shots_amount、powder_amountなどが定義されていますか?そのレイアウトをどこで膨張させていますか?例外を含むlogcat出力を投稿してください。 – Simon