webview长按弹出菜单

2012-01-12 16:51

android webview 长按事件处理

webview 中可以增加长按监听事件来弹出菜单。

具体实现下面这个函数即可:

//webview 长按事件
webView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener(){

public void onCreateContextMenu(ContextMenu menu, View arg1,
ContextMenuInfo arg2) {
// TODO Auto-generated method stub
MenuItem.OnMenuItemClickListener handler = new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
// do the menu action
switch(item.getItemId()){
case WEB_FenXiang:
Log.i("you click","分享");
break;
case WEB_XiaZai:
Log.i("you click","下载");
break;
case WEB_FuZhi:
Log.i("you click","复制");
break;
case WEB_AddSQ:
Log.i("you click","增加到书签");
break;
}
return true;
}
};
Log.i("long click","true");
HitTestResult result = ((WebView) arg1).getHitTestResult();
int resultType = result.getType();
if ((resultType == HitTestResult.ANCHOR_TYPE) ||
(resultType == HitTestResult.IMAGE_ANCHOR_TYPE) ||
(resultType == HitTestResult.SRC_ANCHOR_TYPE) ||
(resultType == HitTestResult.SRC_IMAGE_ANCHOR_TYPE)) {
Intent i = new Intent();
Log.i("extrea",result.getExtra());
MenuItem item = menu.add(0, WEB_FenXiang, 0, "分享").setOnMenuItemClickListener(handler);
item.setIntent(i);
item = menu.add(0, WEB_FuZhi, 0, "复制").setOnMenuItemClickListener(handler);
item.setIntent(i);

item = menu.add(0,WEB_XiaZai, 0,"下载").setOnMenuItemClickListener(handler); ;
item.setIntent(i);

item = menu.add(0,WEB_AddSQ, 0,"增加到书签").setOnMenuItemClickListener(handler); ;
item.setIntent(i);
menu.setHeaderTitle(result.getExtra());
}
else if (resultType == HitTestResult.IMAGE_TYPE) {
Log.i("image type","ture");
Intent i = new Intent();
MenuItem item = menu.add(0, 1, 0, "OPEN");
item.setIntent(i);
item = menu.add(0, 2, 0, "图片");
item.setIntent(i);
menu.setHeaderTitle(result.getExtra());
}
}
});

看下效果:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值