我已经做了一个主要的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
}
}
建议您事先学习基本信息.