Java 我能';t setText()在另一个布局文件上

Java 我能';t setText()在另一个布局文件上,java,android,nullpointerexception,textview,Java,Android,Nullpointerexception,Textview,因此,我有一个单独的导航布局文件,我想通过点击按钮来编辑它。但当我这样做时,我得到了错误: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference 我用来定义它的代码是: private TextView tvData; pri

因此,我有一个单独的导航布局文件,我想通过点击按钮来编辑它。但当我这样做时,我得到了错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
我用来定义它的代码是:

    private TextView tvData;
    private TextView gettingPrices;
    private TextView navTime;
    private TextView title;
    navTime = (TextView) findViewById(R.id.refreshPricesNav);
    tvData = (TextView) findViewById(R.id.test);
    gettingPrices = (TextView) findViewById(R.id.gettingPrices);
    title = (TextView) findViewById(R.id.navtitle);
执行的代码如下:

title.setText("Last Checked" + Datetime());

修正!添加了
navTime=(TextView)findViewById(R.id.refreshPricesNav)
到onPostExecute

您的
R.id.navtitle
TextView
在当前布局文件中不可用

  • 在类中创建此
    TextView
    可用的方法
  • TextView
    设为static
    ,以便您也可以从其他类访问它

  • 您应该移动下面的所有代码

        navTime = (TextView) findViewById(R.id.refreshPricesNav);
        tvData = (TextView) findViewById(R.id.test);
        gettingPrices = (TextView) findViewById(R.id.gettingPrices);
        title = (TextView) findViewById(R.id.navtitle);
    
    创建该活动的方法。粘贴上述代码之前,不要记得设置视图。您应该将内容视图设置为

    setContentView(R.layout.filename);
    

    根据布局名称替换
    文件名。

    调用这行代码时会发生什么

    title = (TextView) findViewById(R.id.navtitle);
    

    在这里,findViewById()方法返回null,因此title指向no where,这意味着title没有对象引用,这是因为您在当前布局文件中没有通过navtitle的id声明TextView,因此,您必须在当前版面中声明此内容,或者如果您在其他版面中声明,则可以使用include标记。

    很难说您提供的信息。确保
    title=(TextView)findViewById(R.id.navtitle)title.setText(“上次选中”+Datetime())之前肯定会调用code>
    并且ID
    R.ID.navtitle
    存在于layout.xml中。你能发布你的onCreate()方法impl.add你的layout和java代码,这样你就可以很容易地告诉你问题出在哪里了吗?