私は自分のアプリケーションにユーザーがポップアップを表示する単純なロジックを実装しようとしています。ポップアップには単にTextView
と情報メッセージが表示されます。このメッセージは、アプリケーションが起動され、新しいメッセージが表示されるたびに更新されます。 ポップアップのUIは私のアプリケーションUIと一致します。ポップアップの背景画像が必要なのかもしれません。また、このポップアップを閉じるために、ポップアップの右上隅に1つの閉じるボタン(X)が表示されます。AndroidのポップアップウィンドウとAndroidのダイアログ
ロジックの表示メッセージ:私はString
の配列に約100個の文字列が格納されています。この配列からランダムに1つの文字列を選択し、メッセージを表示するポップアップTextView
を入力します。私がここですでにやっていることよりも良いアプローチがあるかどうかを提案してください。また、1つのメッセージが選択された場合、他のメッセージが少なくとも1回は表示されるまで、同じメッセージが選択されないということも考えられます。
ロジックの表示ポップアップ:これは実装できません。私はどんなユーザでもポップアップを固定したくない。Event
またはButton
クリック。私はちょっと待ってからメッセージを表示したいと思っています。 -
Thread.sleep(3000);
ここでは、以下のコードを使用してPopupWindow
を使用しようとしました。
PopupWindow infoPopup;
LinearLayout infoLayout;
TextView infoTextView;
Button infoButton;
infoTextView = new TextView(this);
infoTextView.setText("Testing Popup Text");
infoTextView.setPadding(10,10,10,10);
infoButton = new Button(this);
infoButton.setText("Close");
infoLayout = new LinearLayout(this);
infoLayout.setOrientation(LinearLayout.VERTICAL);
infoLayout.addView(infoTextView);
infoLayout.addView(infoButton);
infoPopup = new PopupWindow(infoLayout,LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
infoPopup.setContentView(infoLayout);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
infoPopup.showAtLocation((CoordinatorLayout)findViewById(R.id.main_content),Gravity.CENTER,100,100);
しかし、このポップアップは私
(CoordinatorLayout)findViewById(R.id.main_content)
パラメータにNULLポインタを与える最後の行でエラーを示しています。私は取得しています
問題は、次のとおりです。すべての
まず、これはカスタムUIのポップアップを示すの正しいアプローチであれば、私はわかりません。私は
AlertDialog
を知っていますが、この場合にはどのオプションが最適かわかりません - お勧めします。なぜ
CoordinatorLayout
がヌルポインタを表示していますか?このポップアップで右上(X)ボタンロジックを実装する方法は?
ありがとうReaz。私はあなたの助言に努めます。私は個人的にあなたが提案したダイアログアクティビティが好きですが、cutom gitライブラリを使ってAlertDialogを使うことも悪い考えではありません。私はそれを適用すると答えとしてあなたの印をつけるでしょう。また、私のレイアウトファイルにはmain_contentレイアウトがあります。それはそれを選んでいないだけだった。私は解決策を見つけるために取り組んでいます。私が見つけたらlogcatとソリューションを投稿します!再度、感謝します! –
私は最終的にこの機能のカスタムダイアログを使用して終了しました。出来た! –
これを聞いてよろしいです! –