メニュー項目からダイアログを呼び出しており、そのダイアログ内にボタンがあり、ボタンを押すと何かをしようとしています。このための私のコードの一部は次のとおりです。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.itTip:
final Dialog tipCalculator = new Dialog(this);
tipCalculator.setTitle("Tip Calculator");
tipCalculator.setContentView(R.layout.tip_layout);
totalBill = (EditText) findViewById(R.id.editTBill);
tips = (EditText) findViewById(R.id.editTTip);
calculate = (Button) findViewById(R.id.bCalcTip);
tvResult = (TextView) findViewById(R.id.tvTipResult);
calculate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Calculate clicked", Toast.LENGTH_SHORT).show();
}
});
tipCalculator.setCancelable(true);
tipCalculator.show();
break;
}
return super.onOptionsItemSelected(item);
}
setOnClickListener を使用せずにアプリを実行すると、正常に動作し、ダイアログが完全に表示されます。しかし、リスナーを使用しようとすると、クラッシュします。LogCat をチェックインしましたが、実際には問題を明確に理解できませんでした。ここで誰かが私を助けてくれることを願っています。