假设我们现在写好了一个字典的程序,在输入框输入字母,就能显示他的英语翻译,现在我们将这个程序共享成一个Action,这样其他程序就可以通过调用这个Action来访问这个程序。
字典程序的处理方法如下:
if (getIntent().getData() != null)
{
String word = getIntent().getData().getHost();
String sql = "select chinese from t_words where english=?";
database = openDatabase();
Cursor cursor = database.rawQuery(sql, new String[]
{ word });
String result = "未找到该单词.";
if (cursor.getCount() > 0)
{
cursor.moveToFirst();
result = cursor.getString(cursor.getColumnIndex("chinese"));
}
textview.setText(result);
}
为了能够使用这个Action,我们需要在mainfirst中配置:
<activity android:name=".Main" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TranslateWord" android:theme="@android:style/Theme.Dialog"> <intent-filter> <action android:name="net.DICTIONARY" /> <data android:scheme="dict" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>这样通过访问定义的Schema的值,就可以调用这个Action了
在另一个程序中,我们这样调用这个Action:
public void onClick(View view) { Intent intent = new Intent("net.DICTIONARY", Uri .parse("dict://" + etWord.getText().toString())); startActivity(intent); }