[英]Custom Dialog onClickListener
因此,我有一個自定義對話框,當用戶單擊CardView時會打開。 打開對話框后,用戶可以選擇一個選項,然后打開一個新活動。
問題是,我無法將onClickListener設置為Dialog,並且當我嘗試將onClickListener設置為TableRow(Dialog來自具有TableRows的自定義布局)時,我在對話框上獲得了NullPointerException dialogHomeScreenOpcenitoUrediSve.setOnClickListener(new View.OnClickListener() {
這是我的代碼:
karticaMainScreenOpcenitoGrid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog = new Dialog(AppLayoutMain.this);
dialog.setContentView(R.layout.content_home_screen_opcenito_dialog);
dialog.setTitle(getResources().getString(R.string.dialog_tumacenje_programa_naslov));
dialogHomeScreenOpcenitoUrediSve = (TableRow) findViewById(R.id.dialogHomeScreenOpcenitoUrediSve);
dialogHomeScreenOpcenitoUrediSve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(AppLayoutMain.this, StatistikeInputMain.class);
startActivity(i);
}
});
dialog.show();
}
});
有什么辦法嗎?
當應用程序嘗試使用具有空值的對象引用時,將引發NullPointerException。
我認為您缺少設置dialog
dialogHomeScreenOpcenitoUrediSve = (TableRow)dialog. findViewById(R.id.dialogHomeScreenOpcenitoUrediSve);
問題:
findViewById(R.id.dialogHomeScreenOpcenitoUrediSve);
您在活動布局中引用它,因此它將為您提供NPE。
您需要獲取對話框實例,並在對話框的show
方法之后使用其findViewById方法。
final Dialog dialog = new Dialog(AppLayoutMain.this);
dialog.setContentView(R.layout.content_home_screen_opcenito_dialog);
dialog.setTitle(getResources().getString(R.string.dialog_tumacenje_programa_naslov));
dialog.show();
dialogHomeScreenOpcenitoUrediSve = (TableRow) dialog.findViewById(R.id.dialogHomeScreenOpcenitoUrediSve);
dialogHomeScreenOpcenitoUrediSve.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(AppLayoutMain.this, StatistikeInputMain.class);
startActivity(i);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.