继承Dialog类,重写onCreate方法,可以在setContentView(R.layout.xxx)来设置自定义布局。
Dialog 使用问题: 1. 弹出:show() 2. 取消:dismiss()
对话框的去掉标题和边界黑框,只需要在对话框的构造器中加入Them即可
public OrderDialog(MyActivity activity) { super(activity,R.style.myDialogTheme); // TODO Auto-generated constructor stub this.activity = activity; }
<style name="myDialogTheme" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowBackground">@drawable/dialog_theme_bg</item> <item name="android:windowIsTranslucent">false</item> </style>
参考:http://griffinshi.iteye.com/blog/568409
/** * * @ClassName: OrderDialog * @Description: TODO(预约清单的Dialog类) * @author zyl * @date 2012-7-11 下午4:11:24 */ public class OrderDialog extends Dialog implements android.view.View.OnClickListener { private String sub_specialty,doctor_name,day,time,surplus,price,ghkh,user_balance,pbID,pathid,Sessionid; private TextView Specialty, Name, Day, Time, Surplus, Price, Ghkh, User_balance; private Button yes_button, no_button; private MyActivity activity; public OrderDialog(MyActivity activity) { super(activity); // TODO Auto-generated constructor stub this.activity = activity; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.order_dialog); Specialty = (TextView) findViewById(R.id.sub_specialty); Name = (TextView) findViewById(R.id.doctor_name); Day = (TextView) findViewById(R.id.day); Time = (TextView) findViewById(R.id.time); Surplus = (TextView) findViewById(R.id.surplus); Price = (TextView) findViewById(R.id.price); Ghkh = (TextView) findViewById(R.id.ghkh); User_balance = (TextView) findViewById(R.id.user_balance); yes_button = (Button) findViewById(R.id.left_btn); no_button = (Button) findViewById(R.id.right_btn); //设置类 Specialty.setText(sub_specialty); Name.setText(doctor_name); Day.setText(day); Time.setText(time); Surplus.setText(surplus);//剩余数 Price.setText(price);//挂号费用 Ghkh.setText(ghkh); User_balance.setText(user_balance);//用户剩余金额 //绑定按钮监听事件 yes_button.setOnClickListener(this); no_button.setOnClickListener(this); } public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.left_btn://提交预约单击事件处理 int sur = Integer.valueOf(surplus); double pri = Double.valueOf(price); double user_bala = Double.valueOf(user_balance); if (sur > 0 && user_bala - pri >= 0 ) {//判断是否能够预约,是否有足够的金额预约 SoapObject request = new SoapObject(WebServiceInfo.NAMESPACE, WebServiceInfo.Order); request.addProperty("ghkh", ghkh); request.addProperty("btn_time", time); request.addProperty("pbID", pbID); request.addProperty("pathid", pathid); request.addProperty("Sessionid", Sessionid); new MyAsyncTask(request, WebServiceInfo.Order, activity, "3").execute(100); dismiss(); }else{ Toast.makeText(activity, "金额不足,请充值", Toast.LENGTH_LONG).show(); dismiss(); } break; case R.id.right_btn://取消预约 dismiss(); break; default: break; } } public void setSessionid(String sessionid) { Sessionid = sessionid; } public void setPathid(String pathid) { this.pathid = pathid; } public void setPbID(String pbID) { this.pbID = pbID; } public void setSub_specialty(String sub_specialty) { this.sub_specialty = sub_specialty; } public void setDoctor_name(String doctor_name) { this.doctor_name = doctor_name; } public void setDay(String day) { this.day = day; } public void setTime(String time) { this.time = time; } public void setSurplus(String surplus) { this.surplus = surplus; } public void setPrice(String price) { this.price = price; } public void setGhkh(String ghkh) { this.ghkh = ghkh; } public void setUser_balance(String user_balance) { this.user_balance = user_balance; } }