如何在Android中的活动中自定义对话框中单击视图?

时间:2015-02-27 09:58:13

标签: android xml

如何在android中的活动中自定义对话框中单击视图?

我的XML是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/default_green"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tvSetNotificationsHeading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:text="Set Notifications On"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@color/white" />

    <RadioButton
        android:id="@+id/rbFriendRequest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:text="Friend Request"
        android:textColor="@android:color/white" />

    <RadioButton
        android:id="@+id/rbMessages"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:text="Messages"
        android:textColor="@android:color/white" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:onClick="saveSetNotificationsDialog"
        android:text="Save" />

</LinearLayout>

我的代码是:

 public void showSetNotificationsDialog(View v) {

            dialog = new Dialog(Activity_Settings.this);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.dialog_setnotificationsdialog);
            rbFriendRequest = (RadioButton)  findViewById(R.id.rbFriendRequest);
            rbMessages = (RadioButton) findViewById(R.id.rbMessages);
            dialog.show();
        }

我能够显示对话框视图,但无法在活动类中点击对话框保存按钮。错误是找不到方法异常。

2 个答案:

答案 0 :(得分:2)

使用findViewById()

的对话框实例
Button declineButton = (Button) dialog.findViewById(R.id.declineButton);

            declineButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Close dialog
                    dialog.dismiss();
                }
            });

答案 1 :(得分:0)

使用如下代码

 dialog = new Dialog(Activity_Settings.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    View view = View.inflate(getActivity(), R.layout.dialog_setnotificationsdialog, null);
    dialog.setContentView(view);
    //always find your view view.findViewbyid
     yourView= (RadioButton)  view.findViewById(R.id.rbFriendRequest);
    //then you can add on click listner to any of your view i.e. 
yourView.setonClickListener(this);(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Close dialog
                    dialog.dismiss();
                }
            });