2023年7月15日发(作者:)
Android实现可输⼊数据的弹出框之前⼀篇⽂章,介绍了如何定义从屏幕底部弹出PopupWindow即写完之后,突然想起之前写过⾃定义内容显⽰的弹出框,就随⼿写了两个实例,分享出来:第⼀种实现⽅式:继承Dialog1.1 线定义弹出框要显⽰的内容:create_user_
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"> 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" /> 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" /> 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" />
1.2 定义要弹出的Dialogpublic class CreateUserDialog extends Dialog {
/**
* 上下⽂对象 *
*/
Activity context;
private Button btn_save;
public EditText text_name;
public EditText text_mobile;
public EditText text_info;
private kListener mClickListener;
public CreateUserDialog(Activity context) {
super(context);
t = context;
}
public CreateUserDialog(Activity context, int theme, kListener clickListener) {
super(context, theme);
t = context;
Listener = clickListener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
// 指定布局
tentView(_user_dialog);
text_name = (EditText) findViewById(_name);
text_mobile = (EditText) findViewById(_mobile);
text_info = (EditText) findViewById(_info);
/*
* 获取圣诞框的窗⼝对象及参数对象以修改对话框的布局设置, 可以直接调⽤getWindow(),表⽰获得这个Activity的Window * 对象,这样这可以以同样的⽅式改变这个Activity的属性.
*/
Window dialogWindow = dow();
WindowManager m = dowManager();
Display d = aultDisplay(); // 获取屏幕宽、⾼⽤
Params p = ributes(); // 获取对话框当前的参数值
// = (int) (ght() * 0.6); // ⾼度设置为屏幕的0.6
= (int) (th() * 0.8); // 宽度设置为屏幕的0.8
ributes(p);
// 根据id在布局中找到控件对象
btn_save = (Button) findViewById(_save);
// 为按钮绑定点击事件监听器
btn_lickListener(mClickListener);
celable(true);
}
}
1.3 调⽤弹出框public void showEditDialog(View view) {
createUserDialog = new CreateUserDialog(this,g_dialog,onClickListener);
();
}
private kListener onClickListener = new kListener() {
@Override
public void onClick(View v) {
switch (()) {
case _save:
String name = _t().toString().trim();
String mobile = _t().toString().trim();
String info = _t().toString().trim();
n(name+"——"+mobile+"——"+info);
break;
}
}
};
第⼆种实现⽅式:继承PopupWindow2.1 定义弹出框布局⽂件,和1.1定义的⼀致2.2 定义要弹出的PopupWindowpublic 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, kListener itemsOnClick) {
xt = mContext;
= (mContext).inflate(_user_pop, null);
text_name = (EditText) ewById(_name);
text_mobile = (EditText) ewById(_mobile); text_info = (EditText) ewById(_info);
btn_save_pop = (Button) ewById(_save_pop);
// 设置按钮监听
btn_save_lickListener(itemsOnClick);
// 设置外部可点击
sideTouchable(true);
/* 设置弹出窗⼝特征 */
// 设置视图
tentView();
// 设置弹出窗体的宽和⾼
/*
* 获取圣诞框的窗⼝对象及参数对象以修改对话框的布局设置, 可以直接调⽤getWindow(),表⽰获得这个Activity的Window
* 对象,这样这可以以同样的⽅式改变这个Activity的属性.
*/
Window dialogWindow = dow();
WindowManager m = dowManager();
Display d = aultDisplay(); // 获取屏幕宽、⾼⽤
Params p = ributes(); // 获取对话框当前的参数值
ght(_CONTENT);
th((int) (th() * 0.8));
// 设置弹出窗体可点击
usable(true);
}
}
2.3 调⽤该弹框组件public void showEditPopWin(View view) {
createUserPopWin = new CreateUserPopWin(this,onClickListener);
Location(findViewById(_view), , 0, 0);
}
private kListener onClickListener = new kListener() {
@Override
public void onClick(View v) {
switch (()) {
case _save_pop:
String name1 = _t().toString().trim();
String mobile1 = _t().toString().trim();
String info1 = _t().toString().trim();
n(name1+"——"+mobile1+"——"+info1);
s();
break;
}
}
};
以上就是本⽂的全部内容,希望对⼤家的学习Android有所帮助。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689429735a246859.html
评论列表(0条)