textView setText() NullPointerException

2023-12-14

我有一个几乎完全香草的应用程序。我想做的就是更改 textView 的文本,但它给了我一个 NullPointerException。我没有 XML 配置,没有添加方法,没有什么特别的。我检查了我的类,它指向正确的 XML,并且 XML 中确实有一个具有正确 id 的 textView 元素。

我还尝试在类级别的 onCreate() 之外创建 textView 实例,但无论如何应用程序都无法启动。我确信我忽略了简单,但我找不到答案。谢谢您的帮助。 编辑: 我意识到我需要移动此代码以便它访问片段资源,但是当我这样做时,它会给我一个错误:

无法从 Activity 类型对非静态方法 findViewById(int) 进行静态引用

如果我的所有视图都在我的片段中,而不是在我的 Activity XML 中,我应该将代码放在哪里?或者我应该让活动首先加载片段? 包com.example.testapp;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.os.Build;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView tv = (TextView) findViewById(R.id.textView1);
        tv.setText("Teststring");

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
        .add(R.id.container, new PlaceholderFragment()).commit();
    }


    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {


        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;


    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


    public static class PlaceholderFragment extends Fragment {

        public PlaceholderFragment() {
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            return rootView;
        }

    }


}

错误日志:

06-14 17:02:27.405: E/AndroidRuntime(1420): FATAL EXCEPTION: main
06-14 17:02:27.405: E/AndroidRuntime(1420): Process: com.example.testapp, PID: 1420
06-14 17:02:27.405: E/AndroidRuntime(1420): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testapp/com.example.testapp.MainActivity}: java.lang.NullPointerException
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.os.Handler.dispatchMessage(Handler.java:102)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.os.Looper.loop(Looper.java:136)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.ActivityThread.main(ActivityThread.java:5017)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at java.lang.reflect.Method.invokeNative(Native Method)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at java.lang.reflect.Method.invoke(Method.java:515)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at dalvik.system.NativeStart.main(Native Method)
06-14 17:02:27.405: E/AndroidRuntime(1420): Caused by: java.lang.NullPointerException
06-14 17:02:27.405: E/AndroidRuntime(1420):     at com.example.testapp.MainActivity.onCreate(MainActivity.java:23)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.Activity.performCreate(Activity.java:5231)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
06-14 17:02:27.405: E/AndroidRuntime(1420):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
06-14 17:02:27.405: E/AndroidRuntime(1420):     ... 11 more

XML 片段_主

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.testapp.MainActivity$PlaceholderFragment" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</RelativeLayout>

你能发布xml吗?你的java假设的id“R.id.textView1”很可能是错误的。也许是 R.id.textview1?

如果您的文本视图位于片段内,只需执行以下操作:

@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            TextView tv = (TextView) rootView.findViewById(R.id.textView1);
        tv.setText("Teststring");
            return rootView;
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

textView setText() NullPointerException 的相关文章

随机推荐

  • C中的客户端服务器多个连接

    我试图推理用 C 语言实现的带有套接字的简单服务器如何处理并发客户端 假设一个简单的服务器等待客户端连接 然后读取客户端发送的消息 read 是一个阻塞函数 因此服务器将阻塞 直到客户端写入它 如果我们假设两个客户端同时向服务器写入数据 服
  • VB.NET 中的屏幕截图程序

    我创建了一个捕获桌面屏幕截图的应用程序 它与我在表单中使用的按钮配合得很好 但现在我想使用计时器让这个东西自动工作 但是每当我尝试运行程序时NullReferenceException发生任何人都可以告诉我这里出了什么问题吗 TimerCa
  • r - ggplot2 - 分割超过 2 组的小提琴图

    从哪里继续这个线程离开了 我想在 ggplot 2 中制作一个分割小提琴图 上面提出的方法仅限于 x 轴上的 2 个类别 Example set seed 20160229 my data data frame y c rnorm 1000
  • 如何将异步/标准库 future 转换为 futures 0.1?

    我想使用async函数逐步解析入站流 但 actix web 需要impl Future
  • 触发dialog.close 后,Word 加载项停止工作。办公JS

    我一直在开发一个 Office365 应用程序 在该应用程序中我打开了一个对话框 并在进行某种活动后使用dialog close 关闭对话框 它工作得很好 但功能区按钮停止工作 下次它不会再显示相同的对话框 Office context u
  • php中如何显示上传后的图片?

    将图像上传到文件夹后 怎么显示图片 这是我的 upload php
  • 打字稿回调函数中的“this”范围

    我无法理解 这个 上下文在打字稿中是如何工作的 我无法访问方法中的类成员 下面是我的代码 class adopterDetailCtrl public adopter IAdopter public router any static in
  • Django Admin 看起来很奇怪

    这是 Django 3 的新安装 我得到了面板的管理员外观 我在浏览器控制台中没有错误 我已经做了 python3 manage py collectstatic 一条线索 为了能够在没有 apache 500 错误的情况下看到这个管理面板
  • 如果没有 @Provides 注释的方法,则无法提供 >

    我正在尝试创建一个像这样的视图模型模块example但我遇到了这个错误 错误 如果没有 Provides 注释的方法 则无法提供 java util Map javax inject Provider gt 我遵循了所有示例 这是我的代码
  • 在 Visual Basic.NET 中构造对象而不对其进行赋值

    我已经使用 VB net 好几年了 但总是遇到一些我不知道如何解决的小问题 好奇心终于战胜了我 所以我现在问 有没有一种方法可以创建一个对象而不分配它 例如 假设我有一个 Engine 类 我想实例化它并让它立即执行它需要执行的任何操作 如
  • Windows 上的 symfony2 assetics yui 压缩器(路径语法)

    我正在尝试让 assetics 与 yui 压缩器一起运行 如果正在运行 则使用 sass 目前 两者都不起作用 当从 config yml 和 twig 模板中删除所有过滤器时 它可以工作并且php app console assetic
  • C# 第二维数组到一维数组的引用

    我有一个可以接受一维数组的函数 double 作为参数 而我的源数据是一个二维数组 double 的 cnt 3d 点数量 就像这样 double points new double 3 cnt 但我真正想做的是将三个第二个暗淡数组中的每一
  • ASP.Net Core WebApi 中的非属性路由

    我需要构建项目 实现由供应商应用程序预定义的 REST API 将使用它 有大约数千个 REST 资源 其中一些操作由不同的 HTTP 动词 POST GET PUT DELETE 等 定义 因此 理想情况下 对于每个资源 我应该有一个像这
  • 是否可以将“选择”块中出现的元素限制为最大?

    我需要解决以下问题 伪算法 你有四个元素 elm1 elm2 elm3 elm4 elm1 出现 0 2 次 elm2 出现 0 1 次 elm3 出现 0 n 次 elm4 出现 0 n 次 它们可以以任何方式订购 但仅限于给定的数量 伪
  • 如何使用 jQuery 和 PHP 在单独的行上显示 JSON 响应

    我正在使用 AJAX 提交表单 并希望在页面上显示信息摘要 以便用户可以在提交之前确认信息 我无法将结果显示在多行上 关于最好的方法有什么建议吗 这是 PHP return message First Entry POST Name1 Se
  • c++ win32:如何设置窗口的背景颜色?

    我可以在注册课程时设置背景颜色 例如 wincl hbrBackground CreateSolidBrush RGB 202 238 255 RegisterClassEx wincl 但是我该如何对使用 CreateWindow 函数创
  • 在 Go 中将时区解析为 Location 结构

    给定一个时区 例如 EDT 或 CEST 有没有办法获得time Location参考使用它func t Time In loc Location Time 可以初始化例如位置 中欧夏令时time LoadLocation Europe B
  • 根据 WooCommerce 3+ 中的用户角色添加自定义我的帐户菜单项

    我正在使用 WordPress 和 WooCommerce 并且我已关注这篇文章https rudrastyh com woocommerce my account menu html在 WooCommerce 我的帐户菜单中添加新菜单项
  • 使用 CSS 定位 DIV 的第一个元素

    我在一个表格内有一个所见即所得编辑器 该编辑器放置在 div 内 因此 div class mydiv li table My WYSIWYG table li 在我的所见即所得中 有更多的表 但是我只想定位第一个表 我知道我可以为该表分配
  • textView setText() NullPointerException

    我有一个几乎完全香草的应用程序 我想做的就是更改 textView 的文本 但它给了我一个 NullPointerException 我没有 XML 配置 没有添加方法 没有什么特别的 我检查了我的类 它指向正确的 XML 并且 XML 中