iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 分享功能的实现代码
  • 501
分享到

Android 分享功能的实现代码

Android 2022-06-06 01:06:33 501人浏览 安东尼
摘要

Android 分享功能的实现代码 一个Activity中,取出设备上安装的所有支持分享动作的Activity,在grid中显示。 实例代码: public class N

Android 分享功能的实现代码

一个Activity中,取出设备上安装的所有支持分享动作的Activity,在grid中显示。

实例代码:



public class NShaReactivity extends AppCompatActivity {
  public final static String EXTRA_STR_TO_SHARE="str_to_share1";
  private class SharedPkgInfo{
    String pkgName;
    Drawable icon;
    String appName;
    String activityClassName;
  }
  class Vh extends RecyclerView.ViewHolder {
    TextView tv;
    ImageView iv;
    public Vh(View itemView) {
      super(itemView);
      itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          //点击了某个app的图标,用选择的app分享内容
          Intent share = new Intent(Android.content.Intent.ACTioN_SEND);
          share.setType("text/*");
          share.putExtra(Intent.EXTRA_SUBJECT, "分享");
          share.putExtra(Intent.EXTRA_TEXT,NShareActivity.this.strToShare);
          //share.putExtra(Intent.EXTRA_STREAM, uri); // Optional, just if you wanna share an image.
          SharedPkgInfo pi = sharePkgInfo.get(getAdapterPosition());
          share.setClassName(pi.pkgName,pi.activityClassName);
          //share.setPackage();
          startActivity(share);
        }
      });
    }
  }
  //获取支持供享的包的信息
  List<SharedPkgInfo> sharePkgInfo=new ArrayList<>();
  //要分享出去的文本放在这里
  private String strToShare=null;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent= this.getIntent();
    strToShare = intent.getStringExtra(EXTRA_STR_TO_SHARE);
    getAllSharePackages();
    //将可共享的app图标都放在一个gridview中
    RecyclerView v=new RecyclerView(this);
    v.setPadding(16,16,16,16);
    GridLayoutManager lm=new GridLayoutManager(this,4);
    v.setLayoutManager(lm);
    v.setAdapter(new RecyclerView.Adapter<Vh>()
    {
      @Override
      public Vh onCreateViewHolder(ViewGroup parent, int viewType) {
        //必须创建新的view holder
        LinearLayout v=new LinearLayout(NShareActivity.this);
        v.setPadding(8,8,8,8);
        Vh vh=new Vh(v);
        //先创建item view:上面一个图标,下面一个文本
        LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.WRAP_CONTENT);
        v.setOrientation(LinearLayout.VERTICAL);
        v.setLayoutParams(lp);
        ImageView imgv=new ImageView(NShareActivity.this);
        imgv.setLayoutParams(new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            120));
        TextView tv=new TextView(NShareActivity.this);
        tv.setGravity(Gravity.CENTER);
        v.addView(imgv);
        v.addView(tv);
        vh.tv=tv;
        vh.iv=imgv;
        return vh;
      }
      @Override
      public void onBindViewHolder(Vh holder, int position) {
        //将视图与数据绑定
        SharedPkgInfo spi=sharePkgInfo.get(position);
        holder.tv.setText(spi.appName);
        holder.iv.setImageDrawable(spi.icon);
      }
      @Override
      public int getItemCount() {
        return sharePkgInfo.size();
      }
    });
    v.setBackgroundColor(Color.WHITE);
    this.setContentView(v);
  }
  //获取所有支持send Action的包名和图片
  void getAllSharePackages()
  {
    Intent share = new Intent(android.content.Intent.ACTION_SEND);
    //分析网站地址的话用这个:
    //intent.setType("text/plain"); //纯文本
    share.setType("text/*");
    // gets the list of intents that can be loaded.
    List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(share, 0);
    if (!resInfo.isEmpty()) {
      for (ResolveInfo info : resInfo) {
        SharedPkgInfo spi = new SharedPkgInfo();
        spi.pkgName = info.activityInfo.packageName;
        spi.icon = info.loadIcon(getPackageManager());
        spi.appName = info.loadLabel(getPackageManager()).toString();
        spi.activityClassName=info.activityInfo.name;
        sharePkgInfo.add(spi);
        //Log.w("shared",spi.pkgName+" , "+spi.appName+","+info.activityInfo.name);
      }
    }
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:Android实现微信分享带有缩略图的网页Android自定义PopupWindow仿点击弹出分享功能关于Android实现简单的微信朋友圈分享功能Android编程实现调用系统分享功能示例简述Android中实现APP文本内容的分享发送与接收方法Android获取分享应用列表详解及实例


--结束END--

本文标题: Android 分享功能的实现代码

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

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

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

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

下载Word文档
猜你喜欢
  • Python中常用功能的实现代码分享
    目录1. 新建文件夹2. 后台运行并保存log3. 文件读取4. 字符串判断5. 统计list元素出现次数6. timestamp 转换标准时间7. 排序8. 文件路径获取9. 同一...
    99+
    2023-05-16
    Python常用功能实现 Python常用功能 Python功能
  • android分享功能如何实现
    实现Android分享功能可以使用Android系统提供的分享功能,具体步骤如下:1. 创建一个分享的按钮或菜单项,例如在布局文件中...
    99+
    2023-10-09
    android
  • Java实现读写文件功能的代码分享
    下面是一个示例代码实现Java的读写文件功能:```javaimport java.io.BufferedReader;import...
    99+
    2023-08-11
    java
  • C#实现文件上传功能代码分享
    本篇内容介绍了“C#实现文件上传功能代码分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现按日期命名C#文件上传代码如下:private...
    99+
    2023-06-18
  • Flutter实现仿微信分享功能的示例代码
    目录1.首先去pub官网2 在微信开放平台注册开发者账号以及创建你的应用程序3 在分享页面3.1 初始化3.2 检测微信是否安装3.3 分享微信消息总结本文设计到的知识点有主要问题F...
    99+
    2024-04-02
  • GitLab的代码片段功能及分享实践
    GitLab的代码片段功能及分享实践【引言】在软件开发过程中,我们经常会遇到一些重复性的代码片段,例如常用的函数、配置文件模板等等。为了提高开发效率,GitLab提供了代码片段功能,可以方便地存储和分享这些代码片段,使团队成员能够快速获取和...
    99+
    2023-10-22
    代码片段功能: 代码片段 分享实践: 分享 GitLab: GitLab
  • Android应用中怎么实现分享功能
    要在Android应用中实现分享功能,可以使用Android内置的分享功能或者使用第三方的分享库。以下是一种常见的实现方法: 创建...
    99+
    2024-04-03
    Android
  • Android原生态实现分享转发功能实例
    目录导读: 一、xml布局文件二、创建一个实体类 AppInfo.java,用来保存应用信息三、重写PopupWindow控件SharePopupWindow.java,自定义分享的...
    99+
    2024-04-02
  • Android实现旋转动画的方式代码分享
    这篇文章主要介绍“Android实现旋转动画的方式代码分享”,在日常操作中,相信很多人在Android实现旋转动画的方式代码分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android实现旋转动画的方式代...
    99+
    2023-06-20
  • Android实现app分享文件到微信功能
    本文实例为大家分享了Android实现app分享文件到微信的具体代码,供大家参考,具体内容如下 两种实现方案: 1.使用WXFileObject构造分享方法发送到微信; 2.调用系统...
    99+
    2024-04-02
  • Flutter实现仿微信分享功能的示例代码怎么写
    这期内容当中小编将会给大家带来有关Flutter实现仿微信分享功能的示例代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Flutter 用来快速开发 Android iOS平台应用,在Flutte...
    99+
    2023-06-26
  • 使用Android实现截图和分享功能的案例
    这篇文章主要介绍了使用Android实现截图和分享功能的案例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先给大家展示下效果图吧直接上代码:xml的布局:<Button...
    99+
    2023-05-30
    android
  • android如何实现系统分享的自定义功能
    小编给大家分享一下android如何实现系统分享的自定义功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!分享功能是app中特别常见的功能,国内的app基本都支持分享到微信 QQ等主流的社交应用。至于分享功能的实现大多是使...
    99+
    2023-05-30
    android
  • PHP技巧分享:一行代码实现页面跳转功能
    PHP技巧分享:一行代码实现页面跳转功能 在Web开发中,页面跳转是一种常见的操作,通常通过PHP来实现。本文将分享一种简洁高效的方法,使用一行代码实现页面跳转功能。在PHP中,可以使...
    99+
    2024-03-07
    页面 php 跳转
  • Android实现新浪微博一键分享的实例代码
    写在本章前愈来愈多的APP支持一键分享至QQ空间、微信朋友圈、新浪微博的功能,同时支持第三方账号登录,如QQ、微信、新浪微博等第三方平台的账号。本章结合当下流行的设计,兼顾免费的开源ShareSDK,结合项目中的实际需求,整合出一套分享源码...
    99+
    2023-05-30
    android 微博分享 roi
  • Android实现扫码功能
    本文实例为大家分享了Android实现扫码功能的具体代码,供大家参考,具体内容如下 1、引入 implementation 'com.journeyapps:zxing-and...
    99+
    2024-04-02
  • Android开发中怎么实现一个分享功能
    Android开发中怎么实现一个分享功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现代码如下所示;Intent email = new Intent(android....
    99+
    2023-05-31
    android roi
  • springboot实现分页功能的完整代码
    目录1.分页功能的作用2.建立测试数据库3.分页功能返回的结果封装4.分页功能代码具体实现4.1数据层4.2业务层4.3控制层5.jqGrid分页插件总结1.分页功能的作用 分页功能...
    99+
    2023-05-16
    springboot分页 springboot分页条件查询 springboot分页功能
  • Android中RecyclerView拖拽、侧删功能的实现代码
    废话不多说,下面展示一下效果。这是GridView主文件实现。public class GridViewActivity extends AppCompatActivity { RecyclerView mRecyclerView; L...
    99+
    2023-05-30
    android 拖拽删除 recycle
  • Android左滑返回功能的实现示例代码
    前几天用了个app发现左滑可以返回首页,发现这个功能很炫酷,就想着自己能不能做出来,于是研究了一下原理 将activity的背景设置为透明同时设置切换动画 手指滑动的时候,根View跟着滑动,滑倒一定的距离就finish掉。 原理很简...
    99+
    2023-05-31
    android 左滑返回 roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作