iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android中Dialog如何自定义上下文花式菜单
  • 803
分享到

Android中Dialog如何自定义上下文花式菜单

androiddialog 2023-05-30 19:05:38 803人浏览 薄情痞子
摘要

这篇文章主要为大家展示了“Android中Dialog如何自定义上下文花式菜单”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中Dialog如何自定义上下文花式菜单”这篇文章吧。先自

这篇文章主要为大家展示了“Android中Dialog如何自定义上下文花式菜单”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中Dialog如何自定义上下文花式菜单”这篇文章吧。


先自定义一个Dialog

import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.TextView;import io.dcloud.H5B79C397.R;public class SelfDialog extends Dialog {  private TextView copy;//确定按钮  private TextView del;//取消按钮  private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器  private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器  public SelfDialog(Context context) {    super(context, R.style.MyDialog);  }  public void setNoOnclickListener(String str, onNoOnclickListener onNoOnclickListener) {    if (str != null) {      //noStr = str;    }    this.noOnclickListener = onNoOnclickListener;  }  public void setYesOnclickListener(String str, onYesOnclickListener onYesOnclickListener) {    if (str != null) {      //yesStr = str;    }    this.yesOnclickListener = onYesOnclickListener;  }  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.layout_noticeactivity_dialog);    //按空白处不能取消动画    setCanceledOnTouchOutside(true);    //初始化界面控件    initView();    //初始化界面数据    //初始化界面控件的事件    initEvent();  }  private void initEvent() {    //设置确定按钮被点击后,向外界提供监听    del.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        if (yesOnclickListener != null) {          yesOnclickListener.onYesClick();        }      }    });    //设置取消按钮被点击后,向外界提供监听    copy.setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        if (noOnclickListener != null) {          noOnclickListener.onNoClick();        }      }    });  }  private void initView() {    del = (TextView) findViewById(R.id.del);    copy = (TextView) findViewById(R.id.text);  }  public interface onYesOnclickListener {    public void onYesClick();  }  public interface onNoOnclickListener {    public void onNoClick();  }}

然后看Dialog里面的布局文件

<LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="horizontal">  <TextView    android:text="复制"    android:clickable="true"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/text"    android:drawableTop="@mipmap/collect"/>  <TextView    android:layout_marginLeft="15dp"    android:clickable="true"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="删除"    android:id="@+id/del"    android:drawableTop="@mipmap/myself"/></LinearLayout>

还给Dialog设置了一个样式

  <style name="MyDialog" parent="android:style/Theme.Dialog">    <!--背景颜色及和透明程度-->    <item name="android:windowBackground">@android:color/transparent</item>    <!--是否去除标题 -->    <item name="android:windowNoTitle">true</item>    <!--是否去除边框-->    <item name="android:windowFrame">@null</item>    <!--是否浮现在activity之上-->    <item name="android:windowIsFloating">true</item>    <!--是否模糊-->    <item name="android:backgroundDimEnabled">false</item>  </style>

然后看主代码

public class MenuTestActivity extends Activity {  private ListView listView;  private SelfDialog selfDialog;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_menu_test);    listView = (ListView) findViewById(R.id.list);    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(MenuTestActivity.this, android.R.layout.simple_list_item_1);    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    adapter.add("1");    listView.setAdapter(adapter);    listView.setOnItemLonGClickListener(new AdapterView.OnItemLongClickListener() {      @Override      public boolean onItemLongClick(final AdapterView<?> parent, final View view, final int position, long id) {        int[] location = new int[2];        // parent.getItemAtPosition(position).getLocationOnScreen(location);        view.getLocationOnScreen(location);//当前item的坐标        int x = location[0];        int y = location[1];        System.out.println("x:"+x+"y:"+y);//获取控件位置坐标可采用以上方法        selfDialog = new SelfDialog(MenuTestActivity.this);       // Window window = selfDialog.getWindow();        // window.setContentView(view);        Window dialogWindow = selfDialog.getWindow();        WindowManager.LayoutParams lp = dialogWindow.getAttributes();        dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);        lp.x = location[0]+80; // 新位置X坐标        lp.y = location[1]-30; // 新位置Y坐标        // 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes        // dialog.onWindowAttributesChanged(lp);        dialogWindow.setAttributes(lp);        selfDialog.setCanceledOnTouchOutside(true);// 设置点击屏幕Dialog不消失        selfDialog.setYesOnclickListener("确定", new SelfDialog.onYesOnclickListener() {          @Override          public void onYesClick() {            Toast.makeText(MenuTestActivity.this, adapter.getItem(position), Toast.LENGTH_LONG).show();            selfDialog.dismiss();          }        });        selfDialog.setNoOnclickListener("取消", new SelfDialog.onNoOnclickListener() {          @Override          public void onNoClick() {            Toast.makeText(MenuTestActivity.this, adapter.getItem(position), Toast.LENGTH_LONG).show();            selfDialog.dismiss();          }        });        selfDialog.show();        return true;      }    });  }}

主程序的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context="io.dcloud.H5B79C397.testActivity.MenuTestActivity">  <ListView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/list"></ListView></LinearLayout>

效果图:

Android中Dialog如何自定义上下文花式菜单

以上是“Android中Dialog如何自定义上下文花式菜单”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Android中Dialog如何自定义上下文花式菜单

本文链接: https://www.lsjlt.com/news/220816.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android中Dialog如何自定义上下文花式菜单
    这篇文章主要为大家展示了“Android中Dialog如何自定义上下文花式菜单”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中Dialog如何自定义上下文花式菜单”这篇文章吧。先自...
    99+
    2023-05-30
    android dialog
  • Android如何自定义Dialog
    本篇内容主要讲解“Android如何自定义Dialog”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android如何自定义Dialog”吧!接下来看代码:public class&n...
    99+
    2023-07-02
  • 如何在Android中自定义Dialog
    本篇文章为大家展示了如何在Android中自定义Dialog,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。功能:android 提供给我们的只有2种Dialog 即 AlertDialog &...
    99+
    2023-05-31
    android roi dialog
  • Android 自定义精美界面包含选项菜单 上下文菜单及监听详解流程
    目录activity_main.xml源码main.xml源码main_menu.xmlMainActivity.java源码先放实现结果 activity_main.xml、mai...
    99+
    2024-04-02
  • 如何在Android项目中自定义侧滑菜单栏
    本篇文章给大家分享的是有关如何在Android项目中自定义侧滑菜单栏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。自定义侧滑菜单的简单实现不少APP中都有这种侧滑菜单,例如QQ...
    99+
    2023-05-31
    android roi 目中
  • Android如何实现自定义Dialog的大小
    小编给大家分享一下Android如何实现自定义Dialog的大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:Android应用开发中,无论是出于功能还...
    99+
    2023-05-30
    android dialog
  • wpsvba如何自定义菜单栏
    这篇文章主要介绍“wpsvba如何自定义菜单栏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“wpsvba如何自定义菜单栏”文章能帮助大家解决问题。wpsvba自定义菜单栏的方法:vba插件中提供了菜...
    99+
    2023-07-04
  • Android如何实现自定义View展开菜单功能
    这篇文章主要为大家展示了“Android如何实现自定义View展开菜单功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android如何实现自定义View展开菜单功能”这篇文章吧。效果图思路下...
    99+
    2023-05-31
    android view
  • Android中怎么自定义组件卫星菜单
    Android中怎么自定义组件卫星菜单,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先如果要想自定义组件 那么第一件事就是赋予自定义组件的属性,从效果图上看出,该组件可以...
    99+
    2023-05-31
    android
  • Android应用中怎么自定义一个菜单栏
    这期内容当中小编将会给大家带来有关Android应用中怎么自定义一个菜单栏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在android开发的过程中系统自带的菜单往往满足不了开发中的一些需求,比如说一排最...
    99+
    2023-05-31
    android roi
  • js如何自定义QQ菜单效果
    小编给大家分享一下js如何自定义QQ菜单效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!QQ菜单大家都见过,这样有以下的功能:...
    99+
    2024-04-02
  • javascript中如何自定义右键菜单插件
    这篇文章将为大家详细讲解有关javascript中如何自定义右键菜单插件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下1.使用方式js文件引入<scri...
    99+
    2024-04-02
  • 如何在Android中实现一个动画效果的自定义下拉菜单功能
    如何在Android中实现一个动画效果的自定义下拉菜单功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要实现的功能及思路如下:下拉菜单样式是自定义的、非原生效果:需要使用...
    99+
    2023-06-06
  • 小程序如何自定义索引菜单
    本文小编为大家详细介绍“小程序如何自定义索引菜单”,内容详细,步骤清晰,细节处理妥当,希望这篇“小程序如何自定义索引菜单”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。<view class=&qu...
    99+
    2023-07-02
  • JS如何实现自定义右键菜单
    这篇文章主要介绍了JS如何实现自定义右键菜单,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例:<div id="...
    99+
    2024-04-02
  • android如何自定义简单时钟
    这篇文章主要介绍android如何自定义简单时钟,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!android实现简单时钟的具体代码:attrs定义如下<xml version="1.0&qu...
    99+
    2023-06-06
  • Android如何用自定义View实现雪花效果
    效果图 1.SnowView 类 package com.ilz.rocketapplication.handaccount.view; import android.co...
    99+
    2024-04-02
  • Win7系统如何自定义“开始”菜单内容?DIY“开始”菜单图文教程
    Win7系统的“开始”菜单栏有一个智能的功能,它会自动根据使用频次在“开始”菜单中列出最近经常访问程序。虽然这个功能很方便,但是我们有时候,并不希望显示这些软件。这就需要我...
    99+
    2023-06-06
    Win7 开始菜单 内容 DIY 菜单 图文 系统
  • 如何自定义Ubuntu系统的引导菜单
    这篇文章主要为大家展示了“如何自定义Ubuntu系统的引导菜单”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何自定义Ubuntu系统的引导菜单”这篇文章吧。Grub2是Ubuntu的默认引导工...
    99+
    2023-06-16
  • Android开发中如何自定义editText下划线
    这篇文章主要介绍“Android开发中如何自定义editText下划线”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android开发中如何自定义editText下划线”文章能帮助大家解决问题。效果...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作