Second part of post "
Android development: shortcut vs widget", the code.
As from previous post the necessary steps to create a shortcut that user can add to his home screen are 3:
- create the activity launched when the user adds the shortcut
- add the previous activity to manifest.xml
- write the code for previous activity
1. create the activity launched when the user adds the shortcut
This is the simplest task, you have only to create a class that exend
Activity, in my case the acticity name is
Widget1LabelShortcut.
2. add the previous activity to manifest.xml
You have to add the previous activity
Widget1LabelShortcut to
manifest.xml. It is a normal activity with an
intent-filter as the following code.
Be careful, the shortcut will appear in the list of widgets (or shortcuts depending on the Android version ) with the application name as label . If you want to display a custom name you must add the field label in the manifest, as in the example below. This can be useful for the user to understand what the shortcut makes and if you create multiple shortcuts to avoid confusion.
<activity
android:name="com.crbin1.labeltodo.Widget1LabelShortcut"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="Label shortcut">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
|
3. write the code for activity Widget1LabelShortcut
And now the Activity code to create the shortcut.
I
n the simplest case this activity is invisible to the user and it only serves to create the shortcut, all the code will be in the method onCreate.
In other cases the activity can have its own ContentView, a layout and respond to user interaction that can customize the shortcut.
The code below with comments should be self explanatory.
@Override
protected void onCreate(Bundle savedInstanceState) {
// You have to create 2 Intents
// Intent #1. It is the intent that will launch your targer Activity
// when user will click the shortcut.
Intent shortcutIntent = new Intent(this, ActivityTarget.class);
// You can use this intent to pass parameters to target activity
// in my app the label id for example
long labelId; // [...] code to retrieve labelId
shortcutIntent.putExtra("tid", labelId);
// Or to set flags
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
// Intent #2. It is the intent used to create shortcut.
Intent intent = new Intent();
// This intent must have:
// --- the previous shortcut intent
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
// --- a name showed in home screen
String name; // [...] code to retrieve name
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
// --- an icon showed in home screen
ShortcutIconResource ir =
Intent.ShortcutIconResource.fromContext(this, R.drawable.w1);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, ir);
// that's all, now you need to set shortcut and finish activity
setResult(RESULT_OK, intent);
finish();
super.onCreate(savedInstanceState);
}
|
Nessun commento:
Posta un commento