Tôi là người mới bắt đầu tự học và đánh giá cao sự kiên nhẫn! Cảm ơn!OnClickListener bên trong cảnh báo tùy chỉnhdialog Android
Trong Eclipse, tôi đã tạo một customdialog tùy chỉnh với tệp xml của riêng nó ("custom_dialog") và nó được gọi là "usernamealert".
Tôi muốn cảnh báo bật lên nếu người dùng chưa nhập tên người dùng (ví dụ: username.length == 0).
Bên trong bố cục này, tôi có một textView ("Tên của bạn là gì?"), EditText và nút ("usernameButton").
Trước khi đặt onclicklistener cho nút, mọi thứ hoạt động. Đây là Java (có liên quan) của tôi:
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();
Khi tôi đặt onclicklistener vào, nó đã hỏng! Tôi nên đặt nó ở đâu?
(sau đây là những gì tôi đã cố gắng ... tất cả trong OnCreate của tôi)
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();
}
});
Sau khi mã tôi đã nói:
if (username.length() == 0) {
usernamealert.show();
}
Một lần nữa, nó đã làm việc trước khi tôi bắt đầu rối tung với nút !!
afte r giờ tìm kiếm, và cuối cùng đăng câu hỏi, tôi chỉ tìm ra sau 2 phút! Tất cả những gì tôi phải làm khác nhau là thay đổi cách tìm nút: Tên người dùng nútButton = (Button) usernamealert.findViewById (R.id.usernameButton); cần có: Tên người dùng nútButton = (Button) dialoglayout.findViewById (R.id.usernameButton); // dialoglayout là bất cứ điều gì bạn gọi là View – delfina
Chào mừng bạn đến với StackOverflow! Bạn có thể vui lòng gửi giải pháp của bạn như là một câu trả lời và chấp nhận nó như là câu trả lời đúng sau khi nó cho phép bạn. Điều đó sẽ giúp mọi người trong tương lai dễ dàng tìm ra giải pháp nếu họ có cùng một vấn đề. – FoamyGuy
câu trả lời của bạn đã giúp tôi .. mặc dù hãy làm cho câu trả lời của bạn dễ đọc hơn .. im sẽ thêm câu trả lời của tôi dưới đây – mcr619619