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

 更新时间:2016年9月20日 19:59  点击:1756
本文章给各位同学介绍一个简单的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--]

相关文章

  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • C#创建自定义控件及添加自定义属性和事件使用实例详解

    这篇文章主要给大家介绍了关于C#创建自定义控件及添加自定义属性和事件使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • 自定义jquery模态窗口插件无法在顶层窗口显示问题

    自定义一个jquery模态窗口插件,将它集成到现有平台框架中时,它只能在mainFrame窗口中显示,无法在顶层窗口显示. 解决这个问题的办法: 通过以下代码就可能实现在顶层窗口弹窗 复制代码 代码如下: $(window.top.documen...2014-05-31
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • 自定义feignClient的常见坑及解决

    这篇文章主要介绍了自定义feignClient的常见坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • pytorch 自定义卷积核进行卷积操作方式

    今天小编就为大家分享一篇pytorch 自定义卷积核进行卷积操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-05-06
  • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则

    YII的models中的rules部分是一些表单的验证规则,对于表单验证十分有用,在相应的视图(views)里面添加了表单,在表单被提交之前程序都会自动先来这里面的规则里验证,只有通过对其有效的限制规则后才能被提交,可以很有效地保证...2015-11-24
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02