public static boolean isIntentAvailable ( Context context , String action ) {
final PackageManager packageManager = context . getPackageManager ();
final Intent intent = new Intent ( action );
List < ResolveInfo > list =
packageManager . queryIntentActivities ( intent ,
PackageManager . MATCH_DEFAULT_ONLY );
return list . size () > 0 ;
}
使用如下:
@Override
public boolean onPrepareOptionsMenu ( Menu menu ) {
final boolean scanAvailable = isIntentAvailable ( this ,
"com.google.zxing.client.android.SCAN" );
MenuItem item ;
item = menu . findItem ( R . id . menu_item_add );
item . setEnabled ( scanAvailable );
return super . onPrepareOptionsMenu ( menu );
}
2.
Drawable star = context . getResources (). getDrawable ( R . drawable . star );
if ( book . isFavorite ()) {
star . mutate (). setAlpha ( 255 ); // opaque
} else {
star . mutate (). setAlpha ( 70 ); // translucent
}