自定义Dialog几个Popup window.
来源:互联网 发布:mysql入门很简单 pdf 编辑:程序博客网 时间:2024/05/21 09:13
主要理解interface的用法。
xDialog.java (代码中间有use case:)
package android.posapp.a;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Dialog;import android.content.Context;import android.posapp.R;import android.posapp.ui.Data;import android.view.LayoutInflater;import android.view.View;import android.widget.AdapterView;import android.widget.Button;import android.widget.EditText;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.TextView;public class xDialog {public interface OnClickListener{ public boolean click();}private OnClickListener if_okClick;private OnClickListener if_cancelClick;public void show_message_info(final Context context,String title,String message,OnClickListener new_xDialog_OnClickListener_OK) { show_message( context,title,message,new_xDialog_OnClickListener_OK,R.drawable.dialog_icon_info);}public void show_message_warrning(final Context context,String title,String message,OnClickListener new_xDialog_OnClickListener_OK) { show_message( context,title,message,new_xDialog_OnClickListener_OK,R.drawable.dialog_icon_warning);}public void show_message_error(final Context context,String title,String message,OnClickListener new_xDialog_OnClickListener_OK) { show_message( context,title,message,new_xDialog_OnClickListener_OK,R.drawable.dialog_icon_error);}public void show_message_ok(final Context context,String title,String message,OnClickListener new_xDialog_OnClickListener_OK) { show_message( context,title,message,new_xDialog_OnClickListener_OK,R.drawable.dialog_icon_ok);}/* use case : * new xDialog().show_message_error(this, "错误", "设置失败!",null); * */private Dialog show_message(final Context context,String title,String message,OnClickListener new_xDialog_OnClickListener_OK,int icon_id) {if_okClick=new_xDialog_OnClickListener_OK;final Dialog dialog = new Dialog(context, R.style.NoTitleDialog);int layoutId=R.layout.layout_dialog_msg;View layout = LayoutInflater.from(context).inflate(layoutId, null);//LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);Data.log2d("[show_message]");ImageView imageView1 = (ImageView) layout.findViewById(R.id.imageView1);imageView1.setImageDrawable(context.getResources().getDrawable(icon_id));TextView textviewTitle = (TextView) layout.findViewById(R.id.textviewTitle);textviewTitle.setText(title);//(this.getResources().getText(R.string.strSelectType));final TextView textviewContent = (TextView) layout.findViewById(R.id.textviewContent);textviewContent.setText(message);//(this.getResources().getText(R.string.strSelectType));Button buttonOK = (Button) layout.findViewById(R.id.buttonOK);buttonOK.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {Data.log2d("[show_message] OK onClick 1");if (if_okClick==null){dialog.dismiss();}else if (if_okClick.click()){Data.log2d("[show_message] OK onClick 2");dialog.dismiss();}}});Button buttonCancel = (Button) layout.findViewById(R.id.buttonCancel);buttonCancel.setVisibility(View.GONE);dialog.setContentView(layout);dialog.show();return dialog;/*new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.NoTitleDialog)).setTitle("错误").setMessage("请输入公司名称(至少4个字符)!").setPositiveButton("确认", null).show();*/}/*------------------------------------------------------------*/public Dialog show_question(final Context context,String title,String message,OnClickListener new_xDialog_OnClickListener_OK,OnClickListener new_xDialog_OnClickListener_Cancel) {if_okClick=new_xDialog_OnClickListener_OK;if_cancelClick=new_xDialog_OnClickListener_Cancel;final Dialog dialog = new Dialog(context, R.style.NoTitleDialog);int layoutId=R.layout.layout_dialog_msg;View layout = LayoutInflater.from(context).inflate(layoutId, null);//LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);Data.log2d("[show_question]");ImageView imageView1 = (ImageView) layout.findViewById(R.id.imageView1);imageView1.setImageDrawable(context.getResources().getDrawable(R.drawable.dialog_icon_question));TextView textviewTitle = (TextView) layout.findViewById(R.id.textviewTitle);textviewTitle.setText(title);//(this.getResources().getText(R.string.strSelectType));final TextView textviewContent = (TextView) layout.findViewById(R.id.textviewContent);textviewContent.setText(message);//(this.getResources().getText(R.string.strSelectType));Button buttonOK = (Button) layout.findViewById(R.id.buttonOK);buttonOK.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {Data.log2d("[show_question] OK onClick 1");if (if_okClick==null){dialog.dismiss();}else if (if_okClick.click()){Data.log2d("[show_question] OK onClick 2");dialog.dismiss();}}});Button buttonCancel = (Button) layout.findViewById(R.id.buttonCancel);buttonCancel.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {Data.log2d("[dialog_msg_Ok_show] OK onClick 1");if (if_cancelClick==null){dialog.dismiss();}else if (if_cancelClick.click()){Data.log2d("[dialog_msg_Ok_show] OK onClick 2");dialog.dismiss();}}});dialog.setContentView(layout);dialog.show();return dialog;/*new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.NoTitleDialog)).setTitle("错误").setMessage("请输入公司名称(至少4个字符)!").setPositiveButton("确认", null).show();*/}/*------------------------------------------------------------*/public interface OnEditOkClick{ public boolean click(EditText v);}private OnEditOkClick if_edit_okClick;public Dialog show_edit(final Context context,String title,String message,OnEditOkClick cb) {if_edit_okClick=cb;final Dialog dialog = new Dialog(context, R.style.NoTitleDialog);int layoutId=R.layout.layout_dialog_edittext;View layout = LayoutInflater.from(context).inflate(layoutId, null);//LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);TextView textviewTitle = (TextView) layout.findViewById(R.id.textviewTitle);textviewTitle.setText(title);final EditText content = (EditText) layout.findViewById(R.id.edittextContent);content.setText(message);content.setMaxEms(20);Button buttonOK = (Button) layout.findViewById(R.id.buttonOK);buttonOK.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {if (if_edit_okClick.click(content)){dialog.dismiss();}}});Button cancelbutton = (Button) layout.findViewById(R.id.buttonCancel);cancelbutton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});dialog.setContentView(layout);dialog.show();return dialog;}/* use case:new xDialog().show_edit(this, "please input one name",button_cname.getText().toString(), new xDialog.OnEditOkClick() {@Overridepublic boolean click(EditText v) {return dialog_editor_cname_check(v.getText().toString().trim());}});*//*------------------------------------------------------------*/public interface OnListItemClick{ public boolean click(ListView v,int position);}private OnListItemClick if_list_onItemClick;public Dialog show_list(final Context context,String title,List<Map<String, Object>> listData, String listKeyString,OnListItemClick ic) {//assert( ic ==null);if_list_onItemClick=ic;int layoutId=R.layout.layout_dialog_list;int layoutSubId=R.layout.layout_dialog_list_item;final Dialog dialog = new Dialog(context, R.style.NoTitleDialog);View layout = LayoutInflater.from(context).inflate(layoutId, null);TextView textviewTitle = (TextView) layout.findViewById(R.id.textviewTitle);textviewTitle.setText(title);final ListView listView1=(ListView) layout.findViewById(R.id.listView1);SimpleAdapter adapter = new SimpleAdapter(context, listData,layoutSubId, new String[] {listKeyString}, new int[] { R.id.textView1 }); listView1.setCacheColorHint(0);listView1.setFadingEdgeLength(0);listView1.setDividerHeight(0);listView1.setAdapter(adapter);listView1.setOnItemClickListener(new ListView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View v, int position,long item_line_id) {if (if_list_onItemClick.click(listView1,position)){dialog.dismiss();}}});Button cancelbutton = (Button) layout.findViewById(R.id.buttonCancel);cancelbutton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});dialog.setContentView(layout);dialog.show();return dialog;}public Dialog show_list(final Context context,String title,String [] listString,OnListItemClick ic) {//assert( ic ==null);List<Map<String, Object>> listData = new ArrayList<Map<String, Object>>();String key = "a" + "f" + "e" + "i";if (listString.length == 0) {} else {for (int i = 0; i < listString.length; i++) {Map<String, Object> map = null;map = new HashMap<String, Object>();map.put(key, listString[i].toString());listData.add(map);}}return show_list(context, title, listData, key,ic);}/* use case: * String[] s = new String[] { "item1", "item1", "item1", };new xDialog().show_list(this, "select...", s, new xDialog.OnListItemClick() {@Overridepublic boolean click(ListView v, int position) {// TODO Auto-generated method stubif (position == 0) {n(Data.G_SALE_OUT_BACK);} else if (position == 1) {n(Data.G_SALE_IN);} else if (position == 2) {export_select();}return true;}});*//* use case: * new xDialog().show_list(this, "select date", mListDate, "day_date1",new xDialog.OnListItemClick() {@Overridepublic boolean click(ListView v, int position) {// TODO Auto-generated method stubdialog_select(position);return true;}});*/public Dialog show_list_ex(final Context context,String title,List<Map<String, Object>> listData, String listKeyString,OnListItemClick ic) {//assert( ic ==null);if_list_onItemClick=ic;int layoutId=R.layout.layout_dialog_list_ex;int layoutSubId=R.layout.layout_dialog_list_item;final Dialog dialog = new Dialog(context, R.style.NoTitleDialog);View layout = LayoutInflater.from(context).inflate(layoutId, null);TextView textviewTitle = (TextView) layout.findViewById(R.id.textviewTitle);textviewTitle.setText(title);ImageButton buttonCancel = (ImageButton) layout.findViewById(R.id.buttonCancel);buttonCancel.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});final ListView listView1=(ListView) layout.findViewById(R.id.listView1);SimpleAdapter adapter = new SimpleAdapter(context, listData,layoutSubId, new String[] {listKeyString}, new int[] { R.id.textView1 }); listView1.setCacheColorHint(0);listView1.setFadingEdgeLength(0);listView1.setDividerHeight(0);listView1.setAdapter(adapter);listView1.setOnItemClickListener(new ListView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View v, int position,long item_line_id) {if (if_list_onItemClick.click(listView1,position)){dialog.dismiss();}}});dialog.setContentView(layout);dialog.show();return dialog;}public Dialog show_list_ex(final Context context,String title,String [] listString,OnListItemClick ic) {List<Map<String, Object>> listData = new ArrayList<Map<String, Object>>();String key = "a" + "f" + "e" + "i";if (listString.length == 0) {} else {for (int i = 0; i < listString.length; i++) {Map<String, Object> map = null;map = new HashMap<String, Object>();map.put(key, listString[i].toString());listData.add(map);}}return show_list_ex(context, title, listData, key,ic);}}
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dialog_bg" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/title_bg" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp" > <ImageView android:id="@+id/imageView1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/dialog_icon_info" /> <TextView android:id="@+id/textviewTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/imageView1" android:text="title" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:orientation="vertical" > <EditText android:id="@+id/edittextContent" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" > <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/buttonOK" android:layout_width="91dp" android:layout_height="wrap_content" android:background="@drawable/green_btn1_bg" android:text="@string/strConfirm" android:textColor="@color/btn_text_color" > </Button> <Button android:id="@+id/buttonCancel" android:layout_width="91dp" android:layout_height="wrap_content" android:layout_marginLeft="40dp" android:background="@drawable/green_btn1_bg" android:text="@string/strCancel" android:textColor="@color/btn_text_color" > </Button> </LinearLayout> </LinearLayout> </LinearLayout></ScrollView>
layout_dialog_msg.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dialog_bg" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/title_bg" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp" > <ImageView android:id="@+id/imageView1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/dialog_icon_info" /> <TextView android:id="@+id/textviewTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/imageView1" android:text="title" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:orientation="vertical" > <TextView android:id="@+id/textviewContent" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Message" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/buttonOK" android:layout_width="91dp" android:layout_height="wrap_content" android:background="@drawable/green_btn1_bg" android:text="@string/strConfirm" android:textColor="@color/btn_text_color" > </Button> <Button android:id="@+id/buttonCancel" android:layout_width="91dp" android:layout_height="wrap_content" android:layout_marginLeft="40dp" android:background="@drawable/green_btn1_bg" android:text="@string/strCancel" android:textColor="@color/btn_text_color" > </Button> </LinearLayout> </LinearLayout> </LinearLayout></ScrollView>
layout_dialog_list.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dialog_bg" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/title_bg" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > <ImageView android:id="@+id/imageView1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/dialog_icon_question" /> <TextView android:id="@+id/textviewTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/imageView1" android:text="title" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > </ListView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/buttonCancel" android:layout_width="91dp" android:layout_height="wrap_content" android:background="@drawable/green_btn1_bg" android:text="@string/strCancel" android:textColor="@color/btn_text_color" > </Button> </LinearLayout> </LinearLayout></LinearLayout>
layout_dialog_list_ex.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/dialog_bg" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/title_bg" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > <ImageView android:id="@+id/imageView1" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/dialog_icon_question" /> <TextView android:id="@+id/textviewTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_toRightOf="@+id/imageView1" android:text="title" android:textAppearance="?android:attr/textAppearanceMedium" /> <ImageButton android:id="@+id/buttonCancel" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:background="@drawable/green_btn1_bg" android:src="@android:drawable/ic_delete" /> </RelativeLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > </ListView> </LinearLayout> <!-- <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="10dp" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/buttonCancel" android:layout_width="91dp" android:layout_height="wrap_content" android:background="@drawable/bg_btn" android:text="@string/strCancel" android:textColor="@color/btn_text_color" > </Button> </LinearLayout> --> </LinearLayout></LinearLayout>
layout_dialog_list_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/dialog_list_item" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="4dp" android:layout_marginBottom="4dp" android:text="TextView" /></LinearLayout>
---
use case:
private void case1() {String[] s = new String[] { "AAAAA", "FFF", "789", };new xDialog().show_list(this, "select.....", s, new xDialog.OnListItemClick() {@Overridepublic boolean click(ListView v, int position) {// TODO Auto-generated method stubif (position == 0) {n(Data.G_SALE_OUT_BACK);} else if (position == 1) {n(Data.G_SALE_IN);} else if (position == 2) {export_select();}return true;}});}
private void case2() { new xDialog().show_message_ok(this,"succed.","hello",null); }
private void case3(){
new xDialog().show_edit(this, "input ...","xxx", new xDialog.OnEditOkClick() {@Overridepublic boolean click(EditText v) {return check_string_is_ok(v.getText().toString().trim());}});}
}
0 0
- 自定义Dialog几个Popup window.
- Dialog 和 Popup Window 的区别
- window.popup
- Popup Window
- Android0828<十>(自定义的AlertDialog,Popup Window,Notification)
- popup confirm Dialog
- popup dialog 案例
- react-native-popup-dialog
- Popup Window when keydown
- Popup a Browser Window
- popup another window...
- A Popup Progress Window
- jQuery Custom PopUp Window
- jQuery Custom PopUp Window
- Popup Window 使用
- bootstrap popup window
- android 自定义dialog 常用的几个点
- android 自定义自定义圆角dialog,消除黑色window背景
- SQLite--字段类型处理
- Hadoop & Hbase on OSX 10.8 Mountain Lion
- Node.js Bones框架学习
- 执念,你眼角的温度
- Python学习笔记(4)Python中super的用法
- 自定义Dialog几个Popup window.
- Hibernate generator小结
- jQuery 正则表达式
- 读书笔记--中国哲学史大纲--2014年02月21日
- bp神经网络
- DEDECMS5.7将data目录迁移后,网站地图无法打开和更新的解决方法
- 25个最佳SSH命令
- tcpdump 抓包处理过程拆分
- 大家都来设计模式---桥梁(Bridge)模式