在适配器使用网页视图

问题描述:

我的应用程序具有接片和一个标签包含一个片段。片段中有一个卡片视图。我想当我点击cardview时,我想让webview像this一样工作,但是我收到错误消息。 我webview.xml在适配器使用网页视图

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <WebView 
     android:id="@+id/mywebview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

我的数据适配器

public static class ContentViewHolder extends RecyclerView.ViewHolder { 
    protected TextView title; 
    protected TextView description; 
    protected TextView date; 
    protected ImageView imgSrc; 
    protected String urlS; 
    protected int itemPos; 
    WebView mWebView; 
    AdvancedWebView vw; 
    public ContentViewHolder(View v) { 
     super(v); 
     title = (TextView) v.findViewById(R.id.title); 
     description = (TextView) v.findViewById(R.id.descript); 
     date = (TextView) v.findViewById(R.id.date); 
     imgSrc=(ImageView)v.findViewById(R.id.thumbnail); 
     v.setOnClickListener(new View.OnClickListener() { 
      @Override public void onClick(View v) { 
       /*Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlS)); 
       v.getContext().startActivity(myIntent);*/ 
       //there is a problem 
       mWebView =(WebView)v.findViewById(R.id.mywebview); 
       mWebView.loadUrl("http://www.google.com"); 


      } 
     }); 
    } 

} 

错误

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.example.oguz.topluluk, PID: 3449 
        java.lang.NullPointerException 
         at com.example.oguz.topluluk.WebDataAdapter$ContentViewHolder$1.onClick(WebDataAdapter.java:113) 
         at android.view.View.performClick(View.java:4438) 
         at android.view.View$PerformClick.run(View.java:18422) 
         at android.os.Handler.handleCallback(Handler.java:733) 
         at android.os.Handler.dispatchMessage(Handler.java:95) 
         at android.os.Looper.loop(Looper.java:136) 
         at android.app.ActivityThread.main(ActivityThread.java:5017) 
         at java.lang.reflect.Method.invokeNative(Native Method) 
         at java.lang.reflect.Method.invoke(Method.java:515) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
         at dalvik.system.NativeStart.main(Native Method) 

我怎样才能解决这个问题?我是Android新手。你能指导我吗?

我解决了这一问题。我看到我没有启动webview,也许可能有另一个原因,因此,我得到了错误。经过一些更改后,代码的最终状态如此;

@Override 
public void onBindViewHolder(final ContentViewHolder contentViewHolder, int i) { 
    contentViewHolder.theCard.setOnClickListener(new View.OnClickListener() { 
     @Override public void onClick(View v) { 

      /*...*/ 

      WebView mWebView =new WebView(context); 
      mWebView.getSettings().setJavaScriptEnabled(true); 
      mWebView.loadUrl(wb.link); 


     } 
    }); 

} 

另一个函数上下文的定义,

private Context context; 
    private List<WebDataInfo> dataList; 
    public WebDataAdapter(Context context, List<WebDataInfo> dataList) { 
     this.context=context; 
     this.dataList = dataList; 
} 

我希望帮助。