public class CustomWebView extends WebView {
private Context context;
private ActionMode mActionmode;
private ActionMode.Callback mActionModeCallback;
private SearchView searchView;
public CustomWebView(Context context){
super(context);
this.context = context;
}
public CustomWebView(Context context, AttributeSet attrs){
super(context,attrs);
this.context = context;
WebSettings webSettings = this.getSettings();
webSettings.setJavaScriptEnabled(true);
this.addJavascriptInterface(new JavaScriptInterface(), "JavaScriptInterface");
this.setOnLongClickListener(new View.OnLongClickListener(){
@Override
public boolean onLongClick(View v) {
if (mActionmode != null)
return false;
mActionmode = startActionMode(mActionModeCallback);
v.setSelected(true);
return true;
}
});
Log.w("test",context.toString());
searchView = ((Activity)context).findViewById(R.id.searchView);
}
我想从activity (Customwebview的父视图)获取searchview。但此代码会生成错误消息。
searchView = ((Activity)context).findViewById(R.id.searchView);
我想调用searchView的方法,但它的值为空值。
发布于 2018-06-16 18:59:11
您需要在activity中初始化searchview并将其传递给您的customwebview将此添加到您的customwebview类中
Searchview searchview;
public void setSearchview(Searchview
searchview){ this.searchview=searchvie
w}
// then call whatever functions you
want on searchview
发布于 2018-06-16 20:02:03
您需要在SearchView的构造函数中再使用一个参数
public CustomWebView(Context context, SearchView searchView){
super(context);
this.context = context;
this.searchView = searchView;
}
https://stackoverflow.com/questions/50890804
复制