PackageManager pm = context.getPackageManager();
final List<PackageInfo> appinstalled = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);
appinstalledAdapter = new AppInstalledAdapter(this, appinstalled);
setListAdapter(appinstalledAdapter);
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
PackageInfo p = appinstalled.get(position);
String result = null;
String[] packagePermissions = p.requestedPermissions;
Log.d("AppList", p.packageName);
if (packagePermissions != null) {
for (int j = 0; j < packagePermissions.length; j++) {
result = result + "\n" + packagePermissions[j];
}
}
else {
Log.d("AppList", p.packageName + ": no permissions");
}
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
}
});
}
TextView 部分字体高亮
[功能]
TextView是不支持部分字段高亮的 但是我们可以进行扩展
[思路]
1. 利用LinearLayout 作为 TextView 的 容器
2. 字符串中每个字都使用一个TextView显示之
3. 还可以使用*.9.png来作为所有TextView的背景 使之看上去成为整体
[思路 步骤]
1. 定义TextSelectionHelper 构造函数 传入 Activity上下文 及 子View对齐方式 以及 layout_width layout_height
2. 定义函数 用于接收字符串
3. 设定 部分字符 颜色
4. 设定所有字符的背景 最好使用*.9.png 资源 因为长度可变
5. 得到整个LinearLayout 并供使用
6. 如何使用TextSelectionHelper
* TextHighlightUsage 的布局 并定义最外层的id
* 具体使用:
7. emulator 运行截图:
至于其能不能满足需求 见仁见智了 大家可以参考截图
这个呢是通过 源码的来的
<CheckBox android:id="@+id/star" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:visibility="gone" android:contentDescription="@string/description_star" />
在一个 theme中
<item name="starStyle">@android:style/Widget.CompoundButton.Star</item>
然后
<style name="Widget.CompoundButton.Star">
<item name="android:background">@android:drawable/btn_star_label_background</item>
<item name="android:button">@android:drawable/btn_star</item>
</style>