android – 如何为自定义对话框设置按钮单击监听器?

前端之家收集整理的这篇文章主要介绍了android – 如何为自定义对话框设置按钮单击监听器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经做了一个主要的Dialog类,我发送布局ID,并显示布局作为对话框,当我发送布局从调用类弹出对话框,但对话框的内容即按钮是不可访问的,我无法设置点击听众为他们…帮助我如何做到这一点我的代码

召唤类: –

CustomDialog obj=new CustomDialog(MailSenderActivity.this,R.layout.mydialog);
obj.show();

主要类别

import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class CustomDialog extends Dialog implements
View.OnClickListener {
    Dialog dialog;
    int id;


    public CustomDialog(MailSenderActivity mailsender,int id) {
        super(mailsender);
        this.id = id;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(id);



        Button signInbutton=(Button)findViewById(R.id.signInButton);

        Button closebutton=(Button)findViewById(R.id.closeButton);




        }






    public void closebutton(View v) {
        Toast.makeText(getContext(),"You clicked a button!",Toast.LENGTH_LONG).show();
        dismiss();

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }
}

id是: –

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent" android:layout_width="fill_parent"
    android:padding="30dip" android:orientation="horizontal"
    android:weightSum="1"
    android:background="@drawable/gmail">
    <LinearLayout android:layout_width="296dp"
        android:orientation="vertical" android:layout_gravity="center"
        android:layout_weight="1.51" android:layout_height="497dp">
        <TextView android:text="My Dialog" android:textSize="24.5sp"
            android:layout_width="wrap_content" android:layout_gravity="center"
            android:layout_height="wrap_content" android:layout_marginBottom="25dip"></TextView>
        <TextView android:text="Enter Gmail Id" android:layout_width="fill_parent"
            android:layout_height="wrap_content"></TextView>
        <EditText android:id="@+id/name" android:layout_width="358dp"
            android:singleLine="true" android:layout_height="wrap_content">

        </EditText>
        <TextView android:text="Enter Gmail Password"
            android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>
        <EditText android:id="@+id/name" android:layout_width="314dp"
            android:singleLine="true" android:layout_height="wrap_content"
            android:password="false" android:inputType="textPassword"></EditText>
        <Button android:text="Sign In" android:layout_width="67dp"
            android:id="@+id/signInButton" android:layout_height="wrap_content"
            android:clickable="true" android:onClick="signIn"></Button>

        <Button android:text="close" android:layout_width="67dp"
            android:id="@+id/closeButton" android:layout_height="wrap_content"
            android:clickable="true" android:onClick="closeButton"></Button>
    </LinearLayout>
</LinearLayout>

解决方法

你去:
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(id);

    Button signInbutton=(Button)findViewById(R.id.signInButton);
    signInButton.setOnClickListener(this);
    Button closebutton=(Button)findViewById(R.id.closeButton);
    closeButton.setOnClickListener(this);
    }

@Override
public void onClick(View v) {
    if(R.id.closeButton == v.getId()) { 
        closeButton(v);
    } else {

    // do the same for signInButton
    }

}

建议您事先学习基本信息.

原文链接:https://www.f2er.com/android/312545.html

猜你在找的Android相关文章