私は独学で初心者です。ありがとう!カスタムアラートダイアログ内のOnClickListener Android
Eclipseでは、独自のxmlファイル(custom_dialog)を使用してカスタムアラートダイアログを作成しました。これは「usernamealert」と呼ばれています。
ユーザーがまだユーザー名を入力していない場合(つまり、username.length == 0)、アラートをポップアップします。
このレイアウト内には、textView(「あなたの名前は何ですか?」)、editText、およびボタン(「usernameButton」)があります。
ボタンのonclicklistenerを入れる前に、すべてが機能しました。これは私の(関連する)Javaでした:
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.custom_dialog, (ViewGroup) getCurrentFocus());
AlertDialog.Builder usernamebuilder = new AlertDialog.Builder(this);
usernamebuilder.setView(dialoglayout);
AlertDialog usernamealert = usernamebuilder.create();
私はonclicklistenerを置くと、それは壊れました!どこに置いたらいいですか?コードの後
(以下は私が...私のOnCreateイベントですべて試していたものです)
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.custom_dialog, (ViewGroup)getCurrentFocus());
AlertDialog.Builder usernamebuilder = new AlertDialog.Builder(this);
usernamebuilder.setView(dialoglayout);
Button usernameButton = (Button) usernamealert.findViewById(R.id.usernameButton);
usernameButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//store username in sharedprefs
usernamealert.dismiss();
}
});
私は言った:
再びif (username.length() == 0) {
usernamealert.show();
}
、私はいじり開始する前に、それが働きましたボタン!!
AFTEあるhireteachernegotiate.xml
のレイアウトになっていHireteachernegotiate.class、 r時間の検索と最後に質問を投稿すると、私はちょうど2分後にそれを理解しました! ボタンを見つけた方法を変更するだけでした。 Button usernameButton =(Button)usernamealert.findViewById(R.id.usernameButton); それがあったはずです: Button usernameButton =(Button)dialoglayout.findViewById(R.id.usernameButton); // dialoglayoutはあなたがViewと呼んでいるものです – delfina
ようこそStackOverflow!答えとしてあなたの解決策を掲示し、あなたがそれを許した後に正しい答えとしてそれを受け入れることができますか?将来の人々が同じ問題を抱えていれば、それを簡単に見つけることができます。 – FoamyGuy
あなたの答えが私を助けました。あなたの答えをより読みやすくしてください。私の答えを以下に追加します。 – mcr619619