Я вызываю из меню Item a Dialog, и у меня есть кнопка внутри этого диалога и пытаюсь что-то сделать, когда я нажимаю кнопку. Часть моего кода это как следует:setOnClickListener для кнопки внутри onOptionsItemВыбранный причиной сбоя приложения
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, он отлично работает и показывает диалог отлично. Но всякий раз, когда я пытаюсь использовать Listener, он падает. Я проверил в LogCat и на самом деле не мог четко понять проблему. Надеюсь, кто-нибудь может мне помочь.
Попробуйте заменить getApplicationContext() с помощью v.getContext() –
На самом деле я пробовал держать пустое внутри этого метода OnClick (View v), так что он сбой –
«Рассчитывает» 'null'? Попробуйте отобразить в журнале, вызовите это перед 'calculate.setOnClickListener()', 'Log.d (« Button Calculate »,« Is null: »+ calculate == null);' – Geros