webview始终为null

时间:2012-01-19 20:09:18

标签: java android android-webview

我有WebViewFragment,在尝试使用webview时,它会给我一个空指针

public class BallInfoFragment extends WebViewFragment {
long id;

public BallInfoFragment(long id){
    this.id = id;
}

@Override
public void onCreate(Bundle state){
    super.onCreate(state);
    String ball = new String();
    Cursor c = getActivity().getContentResolver().query(Balls.CONTENT_URI,new String[] {Balls.ID,Balls.BALL},Balls.ID+"="+id,null,null);
    c.moveToFirst();
    ball = c.getString(1);
    WebView wv = getWebView();  //getWebView always gives me null

为什么它为空?

2 个答案:

答案 0 :(得分:2)

Jivings是正确的,但是为了澄清大部分时间你需要在onCreateView方法中检索和附加你的视图,这是父视图层次结构出现膨胀的地方。 onCreateViewWebViewFragment的默认实现将WebView附加到父视图中,因此在这种情况下您不需要担心它(类似的类也是如此)例如ListFragment)。我认为值得一提。如果您只想从Activity的视图布局中检索视图,则应在onActivityCreated中执行此操作,因为只有在创建Activity布局后才会调用此视图。在上面的代码中,您在连接之前检索视图,并且getWebView正确地返回null。

确保您了解Fragment生命周期,这非常重要!

答案 1 :(得分:0)

您必须将代码放在onActivityCreated()函数中。在WebView实例化后调用。

@Override
public void onActivityCreated(Bundle savedInstanceState) { 
  // your code here.
  WebView wv = getWebView();
}
onCreate之前创建活动时,会调用

WebView