热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Android实现软件列表的点击启动另外一个程序功能【附demo源码下载】

这篇文章主要介绍了Android实现软件列表的点击启动另外一个程序功能,涉及Android针对应用程序的读取、加载、启动等操作相关技巧,需要的朋友可以参考下

本文实例讲述了Android实现软件列表的点击启动另外一个程序功能。分享给大家供大家参考,具体如下:

目前面世的许多软件中有这么一个功能:设备中安装了哪些软件,他们会以一个软件列表清单的形式向用户展示出来。

今天我们就来实现这一功能:

运行环境: motorola defy+ 系统2.3.6

主要 API : PackageInfo,PackageManager,LayoutInflater,ApplicationInfo

PackageManger类,它的主要职责是管理应用程序包。 通过它,我们就可以获取应用程序信息

通过PackageManager获取应用程序相关信息,再通过listView显示出相应信息。

直接上主要代码了

public class AppListView extends LinearLayout implements OnItemClickListener{
  private final static String TAG = "AppListView";
  private ListView mListView;
  private TextView mTvTitle;
  private List mAppList;
  private Context mContext;
  private LayoutInflater mInflater;
  private PackageManager mPacManager;
  public AppListView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context);
  }
  public AppListView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init(context);
  }
  public AppListView(Context context)
  {
    super(context);
    init(context);
  }
  private void init(Context c)
  {
    mCOntext= c;
    mInflater = (LayoutInflater)c.getSystemService
         (Context.LAYOUT_INFLATER_SERVICE);
    this.addView(mInflater.inflate(R.layout.activity_main,null,false));
    mListView = (ListView)this.findViewById(R.id.listView);
    mTvTitle  = (TextView)this.findViewById(R.id.title);
    loadAppData();
    mListView.setAdapter(new MyAdapter(c));
    mListView.setOnItemClickListener(this);
    Log.d(TAG, "一共"+mAppList.size());
  }
  // 加载应用软件数据 软件名称,包名,对应的图标等等
  private void loadAppData()
  {
    if(mAppList != null){
      mAppList.clear();
    }else{
      mAppList = new ArrayList();
    }
    mPacManager = mContext.getPackageManager();
    List packages = mPacManager.getInstalledPackages(0);
    for(int i=0; i arg0, View arg1, int arg2, long arg3) {
    Toast.makeText(mContext, arg2+"", Toast.LENGTH_SHORT).show();
    // 获取本次item的包名
    String packName = mAppList.get(arg2).packageName;
    // 启动此程序
    Intent intent = mPacManager.getLaunchIntentForPackage(packName);
    mContext.startActivity(intent);
  }
  // 软件载体
  public class AppInfo {
    // 软件名称
    public String appName="";
    // 软件包名
    public String packageName="";
    // 软件图标
    public Drawable appIcon=null;
  }
}

public abstract Intent getLaunchIntentForPackage (String packageName)

这个方法通过包名返回一个Intent , 然后通过StartActivity(Intent)启动应用程序

完整实例代码点击此处本站下载

下面是程序运行的效果图:

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android视图View技巧总结》、《Android文件操作技巧汇总》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》及《Android资源操作技巧汇总》

希望本文所述对大家Android程序设计有所帮助。


推荐阅读
  • 本文介绍了基于Java的在线办公工作流系统的毕业设计方案,涵盖了MyBatis框架的应用、源代码分析、调试与部署流程、数据库设计以及相关论文撰写指导。 ... [详细]
  • MySQL 8.0 新特性详解:免费视频教程上线
    本文介绍了一套在慕课网上发布的免费视频教程,深入解析 MySQL 8.0 的核心新功能,包括增强的安全性、用户管理、新的索引类型、CTE 和窗口函数等。 ... [详细]
  • 本文基于最新版SQLite 3.33.0(发布于2020年8月20日),详细介绍如何使用ORDER BY语句进行数据排序,包括单列和多列排序的方法。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 择要:Fundebug的JavaScript毛病监控插件同步支撑Vue.js异步毛病监控。Vue.js从降生至今已5年,尤大在本年2月份宣布了严重更新,即Vue2.6。更新包含新增 ... [详细]
  • 本文通过具体示例详细介绍了 Python 中的装饰器和装饰类的使用方法,包括带参数的装饰器和装饰类的应用场景。 ... [详细]
  • 面对快应用开发时需要获取摘要值的需求,但官方API并未直接提供相应支持。通过探索发现,利用第三方加密库crypto-js可有效解决此问题。本文将详细介绍如何集成并使用该库来实现摘要值的获取。 ... [详细]
  • 深入解析链表成环问题:剑指Offer第22天的新视角
    本文将详细介绍链表成环问题的多种解法,包括哈希表法、JSON.stringify特殊解法及双指针法,并提供详尽的代码示例。阅读本文,你不仅能够掌握这一经典算法问题的核心技巧,还能了解到更多编程思维的拓展。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • Python脚本实现批量删除多种类型文件的扩展名
    本文介绍了一个Python脚本,用于批量处理并移除指定目录下不同格式文件(如png、jpg、xml、json、txt、gt等)的文件扩展名。该方法通过递归遍历文件夹中的所有文件,并对每个文件执行重命名操作。 ... [详细]
  • 本文提供了一个SQL脚本,用于在Microsoft SQL Server中创建一个数据字典视图,该视图详细列出了表名、表描述、字段名称、字段描述、字段类型、字段大小、字段精度、是否可为空、默认值以及是否为标识或主键等信息。 ... [详细]
  • MyBatis入门指南:环境搭建与基础配置详解
    本文详细介绍了MyBatis的基础配置流程,包括在Maven项目中添加MyBatis依赖、IDEA中配置数据库连接、导入SQL脚本以及编写mybatis-config.xml配置文件等关键步骤。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
author-avatar
目目目目目目目目目目目目
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有