我有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
为什么它为空?
答案 0 :(得分:2)
Jivings是正确的,但是为了澄清大部分时间你需要在onCreateView
方法中检索和附加你的视图,这是父视图层次结构出现膨胀的地方。 onCreateView
中WebViewFragment
的默认实现将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
。