Android:findViewById 返回 NULL - 无法找出问题所在?

发布于 2024-12-07 12:26:24 字数 1809 浏览 1 评论 0原文

我有以下布局。

当我在 MainActivity 类中创建 WebViewGestureOverlayView 对象时,它为这两个对象返回 null

GestureOverlayView gesturesView = (GestureOverlayView) findViewById(R.id.gestures);
WebView webView = (WebView) findViewById(R.id.webview);

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.gesture.GestureOverlayView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gestures"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </LinearLayout>
</android.gesture.GestureOverlayView>

当我将上面的布局更改为以下布局(我将 android.gesture.GestureOverlayView 移到 LinearLayout 内)时,它工作正常。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <android.gesture.GestureOverlayView
        android:id="@+id/gestures"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </android.gesture.GestureOverlayView>
</LinearLayout>

我无法弄清楚我以前的布局有什么问题。

请有人解释一下这一点。

I have the following layout.

When i create WebView and GestureOverlayView objects in my MainActivity class, it returns null for both of the objects.

GestureOverlayView gesturesView = (GestureOverlayView) findViewById(R.id.gestures);
WebView webView = (WebView) findViewById(R.id.webview);

My Layout :

<?xml version="1.0" encoding="utf-8"?>
<android.gesture.GestureOverlayView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gestures"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </LinearLayout>
</android.gesture.GestureOverlayView>

When i change the above layout to the following( i moved android.gesture.GestureOverlayView inside LinearLayout) , it is working fine.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <android.gesture.GestureOverlayView
        android:id="@+id/gestures"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </android.gesture.GestureOverlayView>
</LinearLayout>

I couldnot figure out what's wrong with my previous layout.

Please someone explain this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

当爱已成负担 2024-12-14 12:26:24

清理项目解决了这个问题。

Cleaning the project solved the problem.

夏了南城 2024-12-14 12:26:24

Android 中许多与资源相关的问题都可以通过清理和重建项目来解决。

Many of the problems revolving around resources in Android can be solved by cleaning and rebuilding the project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文