【发布时间】:2019-04-18 21:56:51
【问题描述】:
我将创建一个应用程序,用户将在我的应用程序中输入网站网址。然后我使用 WebView 在我的应用中显示此页面。
如您所知,当用户在上下文中单击任意文本稍长时,会出现 android 光标,然后我们可以选择任意数量的文本。
选择后,我们会看到“COPY, SHARE, SELECT ALL”等。
我的问题是,当用户选择文本时,我想向他们展示不同的选项。比如说“MyCOPY、SendTwitter、SendMessage”。
我该怎么做?
到目前为止我做了什么?
代码如下:
private WebView view;
private final String TAG = MainActivity.class.getSimpleName();
private ActionMode actionMode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.view = findViewById(R.id.webView);
view.loadUrl("https://stackoverflow.com/questions/28385768/android-how-to-check-for-successful-load-of-url-when-using-webview-loadurl");
view.setWebViewClient(new MyWebViewClient());
Log.d(TAG, view.getUrl());
view.setOnLongClickListener((v) -> {
if (actionMode != null)
return false;
actionMode = startSupportActionMode(actionCallBack);
return true;
});
}
startSupportActionMode(actionCallBack) 在哪里
private ActionMode.Callback actionCallBack = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
actionMode.getMenuInflater().inflate(R.menu.custommenu, menu);
actionMode.setTitle("Choose");
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.example_item_1:
Toast.makeText(MainActivity.this, "Option 1 selected", Toast.LENGTH_SHORT).show();
actionMode.finish();
return true;
case R.id.example_item_2 :
Toast.makeText(MainActivity.this, "Option 2 selected", Toast.LENGTH_SHORT).show();
actionMode.finish();
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
actionMode = null;
}
};
【问题讨论】:
-
你有想过这个吗?
-
不,我做不到。抱歉我的回复迟了
标签: java android webview webpage