我想,當用戶使用下面的代碼點擊一個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')爲速戰速決,但將通過你的第二個建議,儘快實現可能我有機會修改一些代碼,因爲這看起來更「正確」,而不是快速修復。 –