は、私は、ユーザーが次のコードを使用してLinearLayout
をクリックすると、カスタムダイアログを開くしようとしている:OnClickListenerの正しいコンテキストを取得するにはどうすればよいですか?
each_pays = (TextView) findViewById(R.id.each_pays);
each_pays_vert.setOnClickListener(new LinearLayout.OnClickListener() {
@Override
public void onClick(View _v) {
// custom dialog
final Dialog multiples_dialog = new Dialog(this);
multiples_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
multiples_dialog.setContentView(R.layout.multiples_dialog);
Button closeMultiplesDialogButton = (Button) multiples_dialog.findViewById(R.id.close_multiples_button);
// if button is clicked, close the custom dialog
closeMultiplesDialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
multiples_dialog.dismiss();
}
});
multiples_dialog.show();
}
});
カスタムダイアログコードなど他の場所で動作します(例えば、オプションメニューの項目をクリックから実行した場合)しかし、ここで試してみると、コンパイル時エラーError:(303, 71) error: incompatible types: Intent cannot be converted to Context
が発生します。
誤差はラインである:
final Dialog multiples_dialog = new Dialog(this);
私は、実行時のクラッシュを取得this
getApplicationContext()
と交換してください。
私は混乱しています。
私はクイックフィックスとして最初のオプション( 'MainActivity.this')を使用し、おそらくできるだけ早くあなたの第二の提案を経て実施していきます私は、より正確で迅速な修正が少なくて済むように、少しのコードを書き直す機会を得ました。 –