Android实现可输入数据的弹出框_Android

之前一篇文章,介绍了如何定义从屏幕底部弹出PopupWindow即《Android Animation实战之屏幕底部弹出PopupWindow》,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来:

第一种实现方式:继承Dialog
 1.1 线定义弹出框要显示的内容:create_user_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/create_user_dialog_view"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:background="@drawable/dialog_load_bg"
 android:minWidth="200dp"
 android:orientation="vertical"
 android:padding="10dp"
 android:paddingBottom="30dp"
 android:paddingTop="30dp"> 

 <EditText
  android:id="@+id/text_name"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:background="@drawable/edit_bg"
  android:hint="姓名"
  android:minHeight="45dp"
  android:textSize="18sp" /> 

 <EditText
  android:id="@+id/text_mobile"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="5dp"
  android:background="@drawable/edit_bg"
  android:hint="手机号"
  android:minHeight="45dp"
  android:textSize="18sp" /> 

 <EditText
  android:id="@+id/text_info"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="5dp"
  android:background="@drawable/edit_bg"
  android:gravity="top|left"
  android:hint="个性签名"
  android:minHeight="145dp"
  android:textSize="18sp" /> 

 <Button
  android:id="@+id/btn_save_pop"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_marginTop="5dp"
  android:text="保存" /> 

</LinearLayout>

 1.2 定义要弹出的Dialog

public class CreateUserDialog extends Dialog { 

 /**
  * 上下文对象 *
  */
 Activity context; 

 private Button btn_save; 

 public EditText text_name; 

 public EditText text_mobile; 

 public EditText text_info; 

 private View.OnClickListener mClickListener; 

 public CreateUserDialog(Activity context) {
  super(context);
  this.context = context;
 } 

 public CreateUserDialog(Activity context, int theme, View.OnClickListener clickListener) {
  super(context, theme);
  this.context = context;
  this.mClickListener = clickListener;
 } 

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // 指定布局
  this.setContentView(R.layout.create_user_dialog); 

  text_name = (EditText) findViewById(R.id.text_name);
  text_mobile = (EditText) findViewById(R.id.text_mobile);
  text_info = (EditText) findViewById(R.id.text_info); 

  /*
   * 获取圣诞框的窗口对象及参数对象以修改对话框的布局设置, 可以直接调用getWindow(),表示获得这个Activity的Window
   * 对象,这样这可以以同样的方式改变这个Activity的属性.
   */
  Window dialogWindow = this.getWindow(); 

  WindowManager m = context.getWindowManager();
  Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
  WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
  // p.height = (int) (d.getHeight() * 0.6); // 高度设置为屏幕的0.6
  p.width = (int) (d.getWidth() * 0.8); // 宽度设置为屏幕的0.8
  dialogWindow.setAttributes(p); 

  // 根据id在布局中找到控件对象
  btn_save = (Button) findViewById(R.id.btn_save); 

  // 为按钮绑定点击事件监听器
  btn_save.setOnClickListener(mClickListener); 

  this.setCancelable(true);
 }
}

1.3 调用弹出框

public void showEditDialog(View view) {
 createUserDialog = new CreateUserDialog(this,R.style.loading_dialog,onClickListener);
 createUserDialog.show();
} 

private View.OnClickListener onClickListener = new View.OnClickListener() {
  @Override
  public void onClick(View v) { 

   switch (v.getId()) {
    case R.id.btn_save: 

     String name = createUserDialog.text_name.getText().toString().trim();
     String mobile = createUserDialog.text_mobile.getText().toString().trim();
     String info = createUserDialog.text_info.getText().toString().trim(); 

     System.out.println(name+"——"+mobile+"——"+info);
     break;
   }
  }
 }; 

第二种实现方式:继承PopupWindow
2.1 定义弹出框布局文件,和1.1定义的一致
2.2 定义要弹出的PopupWindow

public class CreateUserPopWin extends PopupWindow { 

 private Context mContext; 

 private View view; 

 private Button btn_save_pop; 

 public EditText text_name; 

 public EditText text_mobile; 

 public EditText text_info; 

 public CreateUserPopWin(Activity mContext, View.OnClickListener itemsOnClick) { 

  this.mContext = mContext; 

  this.view = LayoutInflater.from(mContext).inflate(R.layout.create_user_pop, null); 

  text_name = (EditText) view.findViewById(R.id.text_name);
  text_mobile = (EditText) view.findViewById(R.id.text_mobile);
  text_info = (EditText) view.findViewById(R.id.text_info); 

  btn_save_pop = (Button) view.findViewById(R.id.btn_save_pop); 

  // 设置按钮监听
  btn_save_pop.setOnClickListener(itemsOnClick); 

  // 设置外部可点击
  this.setOutsideTouchable(true); 

  /* 设置弹出窗口特征 */
  // 设置视图
  this.setContentView(this.view); 

  // 设置弹出窗体的宽和高
   /*
   * 获取圣诞框的窗口对象及参数对象以修改对话框的布局设置, 可以直接调用getWindow(),表示获得这个Activity的Window
   * 对象,这样这可以以同样的方式改变这个Activity的属性.
   */
  Window dialogWindow = mContext.getWindow(); 

  WindowManager m = mContext.getWindowManager();
  Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
  WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值 

  this.setHeight(RelativeLayout.LayoutParams.WRAP_CONTENT);
  this.setWidth((int) (d.getWidth() * 0.8)); 

  // 设置弹出窗体可点击
  this.setFocusable(true); 

 }
}

2.3 调用该弹框组件

public void showEditPopWin(View view) { 

  createUserPopWin = new CreateUserPopWin(this,onClickListener); 

  createUserPopWin.showAtLocation(findViewById(R.id.main_view), Gravity.CENTER, 0, 0);
 } 

private View.OnClickListener onClickListener = new View.OnClickListener() {
  @Override
  public void onClick(View v) { 

   switch (v.getId()) {
    case R.id.btn_save_pop: 

     String name1 = createUserPopWin.text_name.getText().toString().trim();
     String mobile1 = createUserPopWin.text_mobile.getText().toString().trim();
     String info1 = createUserPopWin.text_info.getText().toString().trim(); 

     System.out.println(name1+"——"+mobile1+"——"+info1); 

     createUserPopWin.dismiss();
     break;
   }
  }
 };

以上就是本文的全部内容,希望对大家的学习Android有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
弹出框
android实现钱箱弹出、android弹出输入框、android 弹出输入法、android 弹出式输入框、android 弹出可输入框,以便于您获取更多的相关知识。

时间: 2024-10-28 23:40:38

Android实现可输入数据的弹出框_Android的相关文章

Android实现可输入数据的弹出框

之前一篇文章,介绍了如何定义从屏幕底部弹出PopupWindow即<Android Animation实战之屏幕底部弹出PopupWindow>,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog  1.1 线定义弹出框要显示的内容:create_user_dialog.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa

Android中自定义PopupWindow实现弹出框并带有动画效果_Android

使用PopupWindow来实现弹出框,并且带有动画效果 首先自定义PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost; public void onLost(Lost lost){ this.lost = lost; } private View conentView; public View getConentView() { return conentView; } public L

Android中自定义PopupWindow实现弹出框并带有动画效果

使用PopupWindow来实现弹出框,并且带有动画效果 首先自定义PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost; public void onLost(Lost lost){ this.lost = lost; } private View conentView; public View getConentView() { return conentView; } public L

Android仿淘口令复制弹出框功能(简答版)

上篇文章给大家介绍了Android实现打开手机淘宝并自动识别淘宝口令弹出商品信息功能,接下来通过本文给大家分享android简单版仿淘口令复制弹出框功能,希望对大家有所帮助! 使用Android系统的粘贴板管理服务及ClipboardManager通过addPrimaryClipChangedListener添加Listener来监听粘贴板的状态,很很简单的一个小功能~ 1.首先创建一个Service在后台运行: Intent intent = new Intent(this,MainServi

Android使用Dialog风格弹出框的Activity_Android

在Android中经常会遇到需要使用Dialog风格弹出框的activity,首先我们可能会首先想到的是在XML布局文件中设置android:layout_height="wrap_content"属性,让activity的高度自适应,显然这还不行,我们还需要为其DialogActivity设置自定义一个样式  <style name="dialogstyle"> <!--设置dialog的背景--> <item name="

app-Android打电话时可以显示弹出框吗?

问题描述 Android打电话时可以显示弹出框吗? 想做一个APP,在打电话的界面中显示一个弹出框,显示一些信息,不知道能否实现? 解决方案 这应该没什么难的把,你看看qq网络电话,什么对话框都能整 解决方案二: 是可以的.具体可以下载360.电话拨打一开始会有一个小窗口,显示正在防窃听 解决方案三: 可以的 最容易就是使用Dialog,如果Dialog无法显示,可能是权限的问题.把Dialog定义成系统级别的就没啥问题了.

xml-android中设置自定义activity弹出框大小

问题描述 android中设置自定义activity弹出框大小 我自己写了一个播放器界面,采用继承Theme.Dialog的形式,但是我觉得弹出框太小放不下我需要的内容,所以我想设置弹出框左右边距距离手机屏幕固定长度.但是在实际操作中我在activity文件里可以获取到屏幕宽度,但是无法设置弹出框大小.在xml文件里可以设置layout_width但是不知道怎么获取屏幕大小.求高人指点下如何设置? 解决方案 在那个activity的OnCreate()方法里设置,我在http://www.apk

Android 自定义界面的弹出框(可输入数据)

    上午写了一篇博文,介绍了如何定义从屏幕底部弹出PopupWindow,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog  1.1 线定义弹出框要显示的内容:create_user_dialog.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.

android-下面这段代码Android蓝牙连接的时候的弹出框,怎么没起到作用!

问题描述 下面这段代码Android蓝牙连接的时候的弹出框,怎么没起到作用! Dialog dlg = new AlertDialog.Builder(MainActivity.this).setTitle("蓝牙连接......").create(); dlg.show(); new Thread(){ public void run() { try { MainActivity.this.mySock.connect(); Toast.makeText( MainActivity.