Android自定义Dialog

来源:互联网 发布:花生壳注册免费域名 编辑:程序博客网 时间:2024/06/06 00:02

    客户原本的需求是联系人这个字段是选择的,现在需求变更为联系人既可以选择,又可以临时添加。我的想法是,弹出一个自定义的Dialog,用户在对话框中可以新增联系人。

背景介绍完了,接下来就是代码。

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="vertical"     android:background="@color/white">        <TableLayout            android:id="@+id/new_visitpeople_tablelayout"            style="@style/customer_tablelayout"            android:layout_width="match_parent"            android:layout_height="wrap_content" >            <TableRow                android:layout_marginBottom="5dp"                android:layout_marginTop="5dp" >                <TextView                    style="@style/customer_textview"                    android:layout_gravity="center|center_vertical"                    android:text="联系人"                    android:textColor="@color/orange" />                <EditText                    android:id="@+id/newvisitpeople_name"                    android:maxLength="30"                    style="@style/customer_edittext" >                </EditText>            </TableRow>            <View style="@style/customer_tableview" />            <TableRow                android:layout_marginBottom="5dp"                android:layout_marginTop="5dp" >                <TextView                    style="@style/customer_textview"                    android:layout_gravity="center|center_vertical"                    android:text="联系电话"                                        android:textColor="@color/orange" />                <EditText                    android:id="@+id/newvisitpeople_phone_edittext"                    android:numeric="integer"                    android:maxLength="11"                    style="@style/customer_edittext" >                </EditText>            </TableRow>               </TableLayout> <LinearLayout         android:id="@+id/new_visitpeople_button_layout"        android:layout_height="wrap_content"        android:layout_width="fill_parent"        android:orientation="horizontal"        android:layout_below="@id/new_visitpeople_tablelayout"        android:gravity="center"        >      <Button             android:id="@+id/new_visitpeople_submit"             android:layout_width="100dp"             android:layout_height="40dp"             android:layout_marginLeft="5.0dip"             android:text="添加"             android:textSize="16sp" />         <Button             android:id="@+id/new_visitpeople_cancle"             android:layout_width="100dp"             android:layout_height="40dp"                          android:layout_marginRight="5.0dip"             android:text="取消"             android:textSize="16sp" />    </LinearLayout>    </RelativeLayout>
这里最外面一层为相对布局(RelativieLayout),里面嵌套一个TableLayout存放输入的文本框,在TableLayout下面为一个LinearLayout,里面放着“添加”和“取消”按钮

效果图如下:




关于自定义对话框的布局文件写好之后,开始获取Dialog中输入的值提交到服务器。

首先在工程的src文件下面新建一个Class文件继承Dialog,然后可以添加setTitle()方法,添加setContentView()方法,为两个Button实现监听。

public class NewVisitPeopleDialog extends Dialog {    Button submitButton;    Button cancelButton;    final EditText visitpeopleName;    final EditText visitPeoplePhonenum;    VisitNewPeople visitNewPeople=new VisitNewPeople();    public NewVisitPeopleDialog(final VisitRecordActivity context) {super(context);// TODO Auto-generated constructor stubsetTitle("新增拜访联系人");final RelativeLayout longinDialogView = (RelativeLayout)getLayoutInflater().inflate( R.layout.newvisitpeopledialog, null);        submitButton = (Button) longinDialogView.findViewById(R.id.new_visitpeople_submit);cancelButton = (Button) longinDialogView.findViewById(R.id.new_visitpeople_cancle);visitpeopleName = (EditText) longinDialogView.findViewById(R.id.newvisitpeople_name);visitPeoplePhonenum = (EditText) longinDialogView.findViewById(R.id.newvisitpeople_phone_edittext);setContentView(longinDialogView);cancelButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dismiss();}});submitButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubLong customerId = context.visitRecord.getCustomer().getCustomerId();System.out.println("Customer"+customerId);if(context.visitRecord.getCustomer().getCustomerId() != null){System.out.println("customerId:"+context.visitRecord.getCustomer().getCustomerId());visitNewPeople.setCustomerNo(customerId);    if(TextUtils.isEmpty(visitpeopleName.getText().toString())){Toast.makeText(context, "您还未填写联系人!", Toast.LENGTH_SHORT).show();visitpeopleName.requestFocus();      }else{      String visitpeopleNameString = visitpeopleName.getText().toString();      String visitPeoplePhonenumString = visitPeoplePhonenum.getText().toString();visitNewPeople.setVisitPeopleName(visitpeopleNameString);visitNewPeople.setVisitPeoplePhoneNum(visitPeoplePhonenumString);AddNewVisitPeopleTask  addNewVisitPeopleTask = new AddNewVisitPeopleTask(context);addNewVisitPeopleTask.execute(visitNewPeople);dismiss();}}else{dismiss();context.customerNameEditText.requestFocus();Toast.makeText(context, "您还未选择客户!", Toast.LENGTH_SHORT).show();}}});}}



原创粉丝点击