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();}}});}}
- 自定义Dialog android Dialog
- 【Android】Dialog以及自定义Dialog
- android 系统Dialog,自定义Dialog
- android 自定义dialog 自定义dialog 宽度问题
- Android 自定义 dialog
- Android 自定义 dialog
- Android 自定义 dialog
- Android 自定义Dialog分类
- Android Dialog( 自定义对话框)
- Android自定义Dialog
- Android-自定义Dialog样式
- Android 自定义Dialog样式
- Android:自定义dialog
- Android 自定义dialog
- Android自定义Dialog对话框
- Android 自定义dialog
- Android自定义Dialog
- Android自定义Dialog
- linux下如何使用和安装mysql (三)
- MSSQL 清空日志 删除日志文件
- 励志摘录
- 避免物理内存碎片化 - 内存紧缩
- android 自适应 多屏幕支持
- Android自定义Dialog
- CELayoutEdit
- VC中取得毫秒级、微妙级的时间
- 软件IEtester--安装使用
- 【Android开发】启动另一个Activity
- 不是书评 :《我是一只IT小小鸟》
- ttnhd
- Oracle 常见的33个等待事件
- eclipse远程调试Tomcat方法