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