按钮没有响应OnClickListener()

时间:2013-05-12 01:02:58

标签: android button

所以我创建了一个自定义对话框,我将其设置为xml文件。在那个文件中我有2个按钮。其中一个是响应它的onClick对应,而另一个则没有。我不知道为什么不是。我已经正确地设置了它的ID,并完成了与我做另一个按钮完全相同的一切......它没有给我任何错误,它只是没有做任何事情。 我甚至将按钮属性“clickable”设置为true ...我没有想法。

此外,似乎如果我尝试添加另一个按钮,它在单击时也没有响应...对话框可以采取的小部件数量是否有限制?洛尔...

这是SaveAndFinish按钮无法正常工作

Dialog createFlashCards = new Dialog(FlashCard.this);
                                createFlashCards.setContentView(R.layout.flash_card_create);
                                final EditText Question = (EditText)createFlashCards.findViewById(R.id.FlashCard_CreateQuestionEditText);
                                final EditText Answer = (EditText)createFlashCards.findViewById(R.id.FlashCard_CreateAnswerEditText);
                                Button SaveFlashCard = (Button)createFlashCards.findViewById(R.id.create_new_saved_FlashCard);
                                Button FinishAndSave = (Button)createFlashCards.findViewById(R.id.finish_creating_flashCards);

                                //saves the flashCard to the file on their phone
                                SaveFlashCard.setOnClickListener(new OnClickListener() {
                                    @Override
                                    public void onClick(View arg0) {
                                        //have to check for empty questions or answers
                                        if (!Question.getText().toString().equals("") && !Answer.getText().toString().equals("")) {
                                                String newLineQuestionFixer = Question.getText().toString();
                                                String newLineAnswerFixer = Answer.getText().toString();
                                                newLineQuestionFixer = newLineQuestionFixer.replaceAll("\n", "<GAR>");
                                                newLineAnswerFixer = newLineAnswerFixer.replaceAll("\n", "<GAR>");
                                                Statics.addDataIntoFlashCardFile(FlashCard.this, input.getText().toString(), newLineQuestionFixer,
                                                        newLineAnswerFixer, Statics.mainPageListPosition);
                                            Toast.makeText(FlashCard.this, "FlashCard successfully created", Toast.LENGTH_SHORT).show();

                                        }
                                        else {
                                            Toast.makeText(FlashCard.this, "Must have a question and an answer to save a flashCard", Toast.LENGTH_SHORT).show();
                                        }
                                        Question.setText("");
                                        Answer.setText("");
                                    }
                                });

                                FinishAndSave.setOnClickListener(new OnClickListener() {
                                    @Override
                                    public void onClick(View arg0) {
                                        //have to check for empty questions or answers
                                        if (!Question.getText().toString().equals("") && !Answer.getText().toString().equals("")) {
                                                String newLineQuestionFixer = Question.getText().toString();
                                                String newLineAnswerFixer = Answer.getText().toString();
                                                newLineQuestionFixer = newLineQuestionFixer.replaceAll("\n", "<GAR>");
                                                newLineAnswerFixer = newLineAnswerFixer.replaceAll("\n", "<GAR>");
                                                Statics.addDataIntoFlashCardFile(FlashCard.this, input.getText().toString(), newLineQuestionFixer,
                                                        newLineAnswerFixer, Statics.mainPageListPosition);
                                            Toast.makeText(FlashCard.this, "FlashCard successfully created", Toast.LENGTH_SHORT).show();
                                        //just an intent to refresh the class
                                        Intent refresh = new Intent(FlashCard.this, FlashCard.class);
                                        refresh.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                        startActivity(refresh);
                                        overridePendingTransition(0,0);
                                        }
                                        else {
                                            Toast.makeText(FlashCard.this, "Must have a question and an answer to save a flashCard", Toast.LENGTH_SHORT).show();
                                        }
                                    }
                                });
                                createFlashCards.show();

这是xml

中按钮的声明
<Button
        android:id="@+id/finish_creating_flashCards"
        android:layout_width="wrap_content"
        android:layout_height="55dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_round_xml"
        android:textColor="#FFFFFF"
        android:clickable="true"
        android:text="Finish and Save" />

    <Button
        android:id="@+id/create_new_saved_FlashCard"
        android:layout_width="wrap_content"
        android:layout_height="55dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:background="@drawable/btn_round_xml"
        android:clickable="true"
        android:text="Save_FlashCard"
        android:textColor="#FFFFFF" />

1 个答案:

答案 0 :(得分:1)

你能尝试捕捉这样的点击事件:

<Button
    android:id="@+id/finish_creating_flashCards"
    android:layout_width="wrap_content"
    android:layout_height="55dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/btn_round_xml"
    android:textColor="#FFFFFF"
    android:clickable="true"
    android:text="Finish and Save"
    android:onClick="finishCreatingFlashCards" />

在.java代码文件中:

public void finishCreatingFlashCards(View v) {
        // your code on button click.
}