为什么在运行时通过ID获取WebView?

时间:2014-05-24 15:23:21

标签: android webview android-activity

我在尝试在活动中显示网页视图时发现应用程序失败。如果我在onCreate()中实例化webview,而不是获取R.id.webview,它确实有效。为什么会这样?

这是显示网络视图的活动:

public class DisplayMessageActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.id.webview);

        WebView myWebView = (WebView) findViewById(R.id.webview);
        myWebView.loadUrl("http://www.example.com");        
    }

布局xml文件:

<WebView  
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

1 个答案:

答案 0 :(得分:1)

将评论转为答案:

setContentView(R.id.webview);

您不会将视图ID传递给此方法,而是传递布局文件。然后,您可以使用findViewById(R.id.webview)来访问该布局中包含的视图 因此,请为其提供布局xml文件。

setContentView(R.layout.my_webview_layout);

或者无论你的布局是什么。

此外,如果日志记录错误和异常,您应该将logcat日志附加到您的问题中。它标识问题的类型以及代码中发生/触发的位置。这样做时还会指出它所引用的代码中的哪一行。