我是一個自學成才的初學者,並體會到耐心!謝謝!OnClickListener裏面自定義alertdialog Android
在Eclipse中,我用自己的xml文件(「custom_dialog」)製作了一個自定義alertdialog,它被稱爲「usernamealert」。
如果用戶還沒有輸入用戶名(即username.length == 0),我想要彈出提醒。
在這個佈局裏面我有一個textView(「你叫什麼名字?」),editText和button(「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 r幾個小時的搜索,最後發佈這個問題,我只是在2分鐘後才發現它! 所有我應該做的不同是改變它如何找到按鈕: 按鈕usernameButton =(按鈕)usernamealert.findViewById(R.id.usernameButton); 它應該是: Button usernameButton =(Button)dialoglayout.findViewById(R.id.usernameButton); // dialoglayout是你所謂的視圖 – delfina
歡迎來到StackOverflow!你可以請你的解決方案作爲答案,並接受它作爲正確的答案後,它可以讓你。如果他們遇到同樣的問題,這將使未來的人們更容易找到解決方案。 – FoamyGuy
你的答案幫助了我..雖然請讓你的答案更具可讀性..即時將下面的答案添加到 – mcr619619