实用代码段2

1、ListView使用ViewHolder极简写法

	/**
	 * 在指定View中根据指定ID寻找控件(内置ViewHolder缓存)
	 *
	 * @param convertView
	 *            容器
	 * @param id
	 *            控件ID
	 * @return 找到的控件
	 */
	@SuppressWarnings("unchecked")
	public static <T extends View> T getAdapterView(View convertView, int id) {
		SparseArray<View> viewHolder = (SparseArray<View>) convertView.getTag();
		if (viewHolder == null) {
			viewHolder = new SparseArray<View>();
			convertView.setTag(viewHolder);
		}
		View childView = viewHolder.get(id);
		if (childView == null) {
			childView = convertView.findViewById(id);
			viewHolder.put(id, childView);
		}
		return (T) childView;
	}

用法:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_feed_item, parent, false);
        }

        ImageView thumnailView = getAdapterView(convertView, R.id.video_thumbnail);
        ImageView avatarView =  getAdapterView(convertView, R.id.user_avatar);
        ImageView appIconView = getAdapterView(convertView, R.id.app_icon);

2、设置Activity透明

    <style name="TransparentActivity" parent="AppBaseTheme">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:colorBackgroundCacheHint">@null</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

说明:AppBaseTheme一般是你application指定的android:theme是啥这里就是啥,否则Activity内部的空间风格可能不一致。

用途:用于模拟Dialog效果,比如再Service中没法用Dialog,就可以用Activity来模拟

3、

	/**
	 * 获取设备上所有已安装并可以启动的应用的包名集合
	 *
	 * @param context
	 *            上下文对象
	 * @return 满足条件的包名的集合
	 */
	public static List<String> getAllCanOpenApp(Context context) {
		Intent intent = new Intent(Intent.ACTION_MAIN);
		intent.addCategory(Intent.CATEGORY_LAUNCHER);
		List<ResolveInfo> activities = context.getPackageManager()
				.queryIntentActivities(intent, 0);
		if (DataUtil.isEmpty(activities)) {
			return null;
		}
		List<String> list = new ArrayList<String>();
		String packName;
		for (ResolveInfo info : activities) {
			packName=info.activityInfo.packageName;
			if(DataUtil.isEmpty(packName)){
				continue;
			}
			list.add(packName);
		}
		return list;
	}

使用getInstalledPackages会返回很多无法启动甚至没有图标的系统应用。

时间: 2025-01-31 07:56:58

实用代码段2的相关文章

实用代码段1

1. /** * 收起状态栏 * * @param context * 上下文对象 * @return 成功收起状态栏返回true,否则返回false */ public static boolean collapseStatusBar(Context context) { Object statusbarService = context.getSystemService("statusbar"); if (statusbarService == null) { return fal

50个必备的实用jQuery代码段

本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成.如果你发现你任何可以做得更好的地方的话,欢迎把你的版本粘贴在评论中! 1. 如何修改jQuery默认编码(例如默认UTF-8改成改GB2312): $.ajaxSetup({ ajaxSettings:{ contentType:"application/x-www-form

实用的JS代码段(表单篇)

整理了下比较实用的Javascript代码段,完整的代码参考 1 多个window.onload方法 由于onload方法时在页面加载完成后,自动调用的.因此被广泛的使用,但是弊端是只能实用onload执行一个方法.下面代码段,可以保证多个方法在Onload时执行: function addLoadEvent(func){ var oldonload = window.onload; if(typeof window.onload != 'function'){ window.onload =

50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段

50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段 本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成.如果你发现你任何可以做得更好的地方的话,欢迎把你的版本粘贴在评论中! 1. 如何修改jQuery默认编码(例如默认UTF-8改成改GB2312): $.ajaxSetup({ ajaxSetti

实用jQuery代码段

本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成.   1. 如何修改jQuery默认编码(例如默认UTF-8改成改GB2312): $.ajaxSetup({          ajaxSettings:{ contentType:"application/x-www-form-urlencoded;chartset=GB

即学即用的 30 段 Python 实用代码

Python是目前最流行的语言之一,它在数据科学.机器学习.web开发.脚本编写.自动化方面被许多人广泛使用.它的简单和易用性造就了它如此流行的原因.在本文中,我们将会介绍 30 个简短的代码片段,你可以在 30 秒或更短的时间里理解和学习这些代码片段. 1.检查重复元素 下面的方法可以检查给定列表中是否有重复的元素.它使用了 set() 属性,该属性将会从列表中删除重复的元素. def all_unique(lst): return len(lst) == len(set(lst)) x =

30 段 Python 实用代码

Python是目前最流行的语言之一,它在数据科学.机器学习.web开发.脚本编写.自动化方面被许多人广泛使用.它的简单和易用性造就了它如此流行的原因.在本文中,我们将会介绍 30 个简短的代码片段,你可以在 30 秒或更短的时间里理解和学习这些代码片段. 1.检查重复元素 下面的方法可以检查给定列表中是否有重复的元素.它使用了 set() 属性,该属性将会从列表中删除重复的元素. def all_unique(lst): return len(lst) == len(set(lst)) x =

在VS中自定义代码段

这个功能不怎么实用,但毕竟是VS存在的一个功能点嘛,知道一点也好!说它不怎么实用是有原因的,因为现在强大的VS编辑器拥有不计其数的插件,而且这些插件也有很多很强大的!比如Resharper,Code Assit等都有很智能的智能感知和代码格式设置的功能,真的很好用! 打开VS之后,点击工具菜单,选择代码段管理器: 进去之后,语言选择Visual C#: 再点击下面的Visual C#文件夹,"位置"那里会出现代码段文件的路径: 复制路径,在开始菜单的"搜索所有程序和文件&qu

一站式linux0.11内核head.s代码段图表详解

阅读本文章需要的基础: 计算机组成原理:针对8086,80386CPU架构的计算机硬件体系要有清楚的认知,我们都知道操作系统是用来管理硬件的,那我们就要对本版本的操作系统所依赖的硬件体系有系统的了解,有了系统的了解后才能全面的管理它,我们对8086,80386CPU架构的计算机硬件体系如果有非常深刻的认识,我们看源代码内核的时候,就可以更可能的以一种开发者的角度去思考代码的作用,先从全局的角度去思考问题,而不是采用一种众人摸象的思维从头看到末尾. 计算机编程C语言基础:linux内核基本都是用C