<activity
android:name=".ui.socialNetwork.MySocialNetworkActivity"
android:configChanges="orientation|screenSize"
android:process=":fb"
android:screenOrientation="portrait" >
</activity>
<activity-alias
android:targetActivity=".ui.socialNetwork.MySocialNetworkActivity"
android:name=".AliasMySocialNetworkActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity-alias>
这不是启动器活动。
这里使用的意图过滤器是为了在Web视图长按时复制粘贴工具栏。这个功能很好用。
除此之外,我想使用Webview.setOnLongClickListener()添加其他选项,并像这样实现。
webView = (WebView) findViewById(R.id.webview);
PackageManager pm = getApplicationContext().getPackageManager();
ComponentName compName =
new ComponentName(getPackageName(), getPackageName() + ".AliasMySocialNetworkActivity");
pm.setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
webView.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
WebView.HitTestResult hitResult = null;
hitResult = webView.getHitTestResult();
if (hitResult != null && hitResult.getExtra() != null) {
final String hitRes = hitResult.getExtra();
if (hitResult.getType() == WebView.HitTestResult.IMAGE_TYPE || hitResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
Intent ImageSaveIntent = new Intent(getApplicationContext(), SaveImage.class);
ImageSaveIntent.putExtra("putImage", hitRes);
startActivity(ImageSaveIntent);
}
if (hitResult.getType() != WebView.HitTestResult.IMAGE_TYPE || hitResult.getType() != WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
PackageManager pm = getApplicationContext().getPackageManager();
ComponentName compName =
new ComponentName(getPackageName(), getPackageName() + ".AliasMySocialNetworkActivity");
pm.setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
}
}
return true;
}
});
我的问题是:
- 仅使用Intent Filter,不使用webview.setOnLongClickListener(),我可以复制粘贴webview中的文本。
- 仅使用webview.setOnLongClickListener(),我可以进行我的附加选项,并且它能够正常工作。
- 如果同时实现Intent Filter和webview.setOnLongClickListener(),则无法从webview中复制粘贴文本。webview.setOnLongClickListener()将正常工作。在这里,我理解这两个功能都依赖于长按事件, 但我希望两者都能一起工作。