首页 > 编程技术 > android

Android 自定义弹出对话框界面详解

发布时间:2016-9-20 19:59

本文章给各位同学介绍一个简单的Android 自定义弹出对话框界面实例,如果你对此有了解不防进入参考。

在安卓开发中,时常遇到要弹窗提醒的情况。而系统自带的弹出对话框由不是很美观,可以通过自己继承对话框类(Dialog),并设置自定义的布局文件,来达到美化弹出式对话框的目的。

首先是自定义一个对话框类,继承自Dialog,然后再构造函数中传入对话框显示内容、按钮响应函数等参数:

 代码如下 复制代码

public UserDefinedDialog(Context context, String message,
                         View.OnClickListener onclicklistener,
                         View.OnClickListener cancelListener)
{
  super(context,R.style.Theme_Dialog);
  this.ctx = context;
  this.msg = message;
  if (onclicklistener != null)
  {
    this.okListener=onclicklistener;
  }
  if(cancelListener != null)
  {
    IsTwoButton=true;
    this.cancelListener=cancelListener;
  }
}

然后,在自定义对话框类的OnCreate函数中,设置对话框的布局,以及显示风格:

 代码如下 复制代码

protected void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
 
   requestWindowFeature(Window.FEATURE_NO_TITLE);
   setContentView(R.layout.alertdialog);
 
   tvtitle = (TextView) findViewById(R.id.dialogtitle);
   tvcontent = (TextView) findViewById(R.id.dialogcontent);
 
   btnleft = (Button) findViewById(R.id.btnleft);
   btnright = (Button) findViewById(R.id.btnright);
 
   btnleft.setOnClickListener(this);
   btnright.setOnClickListener(this);
 
   btncenter = (Button) findViewById(R.id.btncenter);
   btncenter.setOnClickListener(this);
   if(IsTwoButton)
   {
     btnleft.setVisibility(View.VISIBLE);
     btnright.setVisibility(View.VISIBLE);
     btncenter.setVisibility(View.GONE);
   }
   tvtitle.setText("提示");
   tvcontent.setText(msg);
 
   WindowManager m;
   m = (WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);
   Display d = m.getDefaultDisplay();
   LayoutParams p = getWindow().getAttributes();
   //设置对话框宽高
   p.height = (int) (d.getHeight() * 0.3);
   p.width = (int) (d.getWidth() * 0.9);
   //设置对话框透明度
   p.alpha = 0.8f;
   //让背景变黑
   p.dimAmount = 0.7f;
   getWindow().setAttributes(p);
   getWindow().setGravity(Gravity.CENTER);
}

另外,自定义的对话框类UserDefinedDialog同时实现了OnClickListener接口,用于实现对点击对话框上按钮的响应,在响应函数中,会判断在构造该类的时候是否传入了相应的响应函数,并交由该函数处理:

 代码如下 复制代码

public void onClick(View v)
{
  switch (v.getId())
  {
    case R.id.btnleft:
        if(cancelListener != null){
           cancelListener.onClick(v);
        }
        break;
    case R.id.btncenter:
        if(okListener != null){
           okListener.onClick(v);
        }
        break;
    case R.id.btnright:
        if(okListener != null){
           okListener.onClick(v);
        }
        break;
  }
  this.cancel();
}

最后,调用的时候非常简单:

 代码如下 复制代码

new UserDefinedDialog(this,
                     "我是一个按钮的对话框,默认效果取消",
                     null, null).show();
 
new UserDefinedDialog(this, "我是两个按钮的对话框",
    new OnClickListener() {
        public void onClick(View v) {
              //dosomething
        }
    },
    new OnClickListener() {
        public void onClick(View v) {
              //dosomething}
    }).show();

美化之后的对话框如下图所示:

自定义对话框-单个按钮

本文章来给大家介绍关于Android开发之WebView的使用进阶,希望有兴趣的同学可进入参考,并对你有所帮助哦。

1、当打开WebView所显示网页上的超链接时,会调用系统的浏览器打开,而不是在原先的WebView上显示。
2、当我按下返回键时,并不是返回的上次打开的网页,而是直接退出程序。下面说明如果解决上面的两个问题

在原WebView上显示打开的链接需要自定义一个类,继承自WebViewClient,并设置WebView的WebViewClient即可:

 代码如下 复制代码
class MyWebViewClient extends WebViewClient
{
   public boolean shouldOverrideUrlLoading(WebView view, String url)
   {
       //重写此方法表明点击链接是在当前的webview里跳转,不跳到浏览器那边
       view.loadUrl(url);
       return true;
   }
}
 
webview = (WebView)this.findViewById(R.id.webView);
 
MyWebViewClient mwvc = new MyWebViewClient();
webview.setWebViewClient(mwvc);
 
webview.loadUrl("/index.php");


这样,当点击网页里的超链接时,就会在当前的WebView中显示,而不是打开浏览器去显示该网页。

响应返回键退回上一个网页第一个问题解决了之后,又引发一个新的问题,那就是当点击了好几层链接后,按下返回按钮并不是按预想的那样回退到上一个网页,而是直接退出了程序。

解决这个问题就需要重写onKeyDown方法,当按下返回键时,判断当前打开的网页是不是顶级页面,如果是,则退出Activity,如果不是,则退回上一个页面:

 代码如下 复制代码

String topPage = "/index.php";
public boolean onKeyDown(int keyCode, KeyEvent event)
{
   if ((keyCode == KeyEvent.KEYCODE_BACK))
   {
      String currentUrl = webview.getUrl();
      if(currentUrl.equals(topPage))
      {
          this.finish();
      }
      else
      {
          webview.goBack();
      }
      return true;
   }
   return false;
}

本文章来给各位同学介绍三星S5831I如何设置信息铃声,如需更改信息铃声,请按以下步骤进行操作:

1.在待机页面下,点击【信息】图标。
 

 

2.点击【菜单】键,选择【设定】。
 

 

3.向上滑动屏幕,点击【选择铃声】。
 

 

4.选择铃声,这里以【Bubbles】为例,再点击【确认】即可。

  

重置手机将会清除手机内部存储设备中的全部数据,包括短信息、联系人、下载的应用程序等。因此,在重置之前,请将手机中的有用数据进行备份,以免丢失。如需重置手机,请按以下步骤操作

1.在待机页面下,点击【应用程序】。



2.点击【设定】。



3.点击【一般】,并点击【重置】。



4.点击【恢复出厂设定】。



5. 选择【重置手机】。


 

提示:果您已登录三星账户,并已勾选【重新激活锁定】(路径:设定-一般-安全),需输入三星账户密码后方可重置。

 

 

 


6.点击【全部删除】。



以上操作完成后,待自动重新启动后,手机就重置成功了。

ipad 怎么注册和激活iCloud账号呢,今天进货了一个ipad air了,想看看苹果手机的icloud怎么使用,下面小给来给各位同学分享一下具体操作方法。

iCloud是什么?

iCloud 为你带来理想的云服务,它可存放你的音乐、照片、app、日历、文档,以及更多内容,还能以无线方式将它们推送到你所有的设备上

怎么注册和激活iCloud账号

第一步

  进入设置,选择iCloud

  第二步

  选择“创建新Apple ID”,已经有的请直接登录吧。

  第三步

  店面一般选中国,然后点“下一步”

  

  第四步

  选择“同意”

  第五步

  根据下面的图,填写好注册的信息,点击“下一步”

  第六步

  填写好付款相关信息,点击“下一步”

  第七步

  点击“完成”

  第八步

  登录你注册时候的邮箱,打开激活邮件,点击“立刻激活”

  第九步

  在新的页面里填写上我们注册的AppleID和密码,点击“验证地址”

  注册完成了!

  第十步

  登录上Apple ID之后,打开下面显示的所有服务内容,iCloud激活成功!

iCloud云备份怎么用

1进入iCloud-存储与备份,打开"iCloud云备份选项"。


2接下来iCloud将会帮你自动进行数据备份,如需更多存储空间可以付费获得!


3."管理存储空间"会显示备份和邮件所占用的空间;
选择要管理设备的备份,iCloud会显示本机信息和最新备份的时间和大小等信息。


4备份选项中可以选择不备份到iCloud中的数据,这里自己按需选择即可。
iCloud默认只显示五条备份信息,查看更多请点击"显示所有应用程序"
可以将不需要数据备份的应用程序选项逐一关闭!


5如果需要清空iCloud云备份,点击最下方的"删除备份"即可

标签:[!--infotagslink--]

您可能感兴趣的文章: