ここに最初の投稿、何か間違ったことをした場合は申し訳ありません。
私は数週間 Android アプリケーションを開発しており、それにユーザー契約/利用規約を追加することにしました。私は Agreement.xml という xml を作成し、このコードを見つけました...
https://gist.github.com/slaypni/3817116 (実際にはどこかで見つけましたが、元のものは見つかりませんでした。これは非常に似ており、クラス名が異なるだけです。)
これはしばらくの間完全に機能しましたが、最近、それを呼び出すコードを少し変更して新しいデバイスでテストしたところ、奇妙な問題が発生しました。
私はそれを経由して呼び出します...
View licenseView = View.inflate(UI, R.layout.agreement, null);
PopUpView ToS = new PopUpView(UI, licenseView);
ToS.show();
ユーザー情報を収集するために、最初のアプリケーション実行時にコードを 1 回実行します (そして、ボタンのテキストや可視性などをいくつか変更します)。すべてが完了したら、もう一度呼び出して、新しくダウンロードした契約書を表示します。2 回目は、次のコードがどれも機能していないように見えます。
checkboxAcceptLicense = (CheckBox)UI.findViewById(R.id.checkLicenseAgreement);
textviewLicense = (TextView)UI.findViewById(R.id.textviewLicenseAgreement);
textviewLicense.setText(agreement);
buttonOK= (Button)UI.findViewById(R.id.buttonOK);
buttonCancel = (Button)UI.findViewById(R.id.buttonCancel);
etName = (EditText)UI.findViewById(R.id.etName);
etNumber = (EditText)UI.findViewById(R.id.etNumber);
etName.setText(prefs.getString("Name", null));
etNumber.setText(prefs.getString("Number", null));
buttonCancel.setOnClickListener(cancel);
buttonOK.setOnClickListener(accept);
最初のブロックの直後に続きます。以前にいくつかの奇妙なヌルポインター例外があったため、アイテムをポップアップとして表示するために使用しているクラスに問題があると思います。現在、エラーなどはありません。コードが実行され、その周りのログが表示されますが、ボタンが応答せず、テキストが設定されていません。
助けてくれてありがとう!
編集:これが問題の証拠であると想定しているため、null チェックを削除しました。2 回目の呼び出しでは、ポップアップ クラスの 74 行目で nullpointerexception が発生してクラッシュします。インフレータに問題があるように感じますが、本当に手がかりがありません。