2

アプリケーションに、一種の設定ウィンドウとして機能するポップアップウィンドウがあります。この中には、チェックボックスなどの小さなビューがいくつかありますが、正しく機能させるのに問題があるようです。

現在、ビューにボタンが1つしかないので、それを使用してポップアップウィンドウを閉じようとしていますが、onClickListenerを設定しようとするとNullPointerExceptionが発生します。実際、「button.isShown()」のようなものであっても、ボタンを参照すると、ボタンが存在しないかのように例外が発生します。

私は考えられるすべてのことを試しましたが、この問題を完全に解決するものはありません。PopupWindow内にボタンを機能させる方法があると思いますか、それとも、目的の効果を得るために何らかの形式のダイアログを変更する必要がありますか?

ご協力ありがとうございました。

4

1 に答える 1

2

findViewById(R.id.yourButton)を呼び出すときは、Dialog.findViewById(id)を使用していることを確認してください。そうしないと、ボタンのメインレイアウトが検索され、正しく検出されないため、試行するとNullPointersが発生します。参照を使用します。

編集:これをより明確にするためのドームコードは次のとおりです

    AlertDialog.Builder builder = new AlertDialog.Builder(this)
    .setView(layout); 
    alertDialog = builder.create();
    alertDialog.show();
    button = (Button) alertDialog.findViewById(R.id.yourButton);
于 2011-01-22T22:37:58.010 に答える