Java 如何在另一个类上更新活动中的元素

Java 如何在另一个类上更新活动中的元素,java,android,android-layout,android-intent,Java,Android,Android Layout,Android Intent,当我想用intent更新活动中的元素时出现问题。实际上,我可以获取参数并设置为元素..但问题是当我不使用intent时,我使用的是方法来设置元素的值..这是我的代码 这段代码我放在ChatActivity.java中 /* * set element attribute */ public void setAttr(String value){ welcome = (TextView)findViewById(R.id.txtWelcome)

当我想用intent更新活动中的元素时出现问题。实际上,我可以获取参数并设置为元素..但问题是当我不使用intent时,我使用的是方法来设置元素的值..这是我的代码

这段代码我放在ChatActivity.java中

/*
     * set element attribute
     */

    public void setAttr(String value){
            welcome = (TextView)findViewById(R.id.txtWelcome);
        welcome.setText("welcome " + value);
    }
我在另一个类中调用该代码,该类是ProcessChat.java

public void welcome(){

ChatActivity chat = new ChatActivity();
chat.setAttr("user");
}
当我运行时,我会得到错误java.lang.null。。。。 怎么了?我怎样才能解决这个问题。。
感谢您的回答。

问题出现在下面一行
welcome=(TextView)findViewById(R.id.txtworcome)


findViewById
用于定义视图而不是创建视图我认为您在创建视图之前调用了该方法。所以它返回null方法。确保视图已定义,因此findviewbyid将为您提供一个非空值,然后只设置任何值。

在ProcessChat中输入以下代码以创建新的意图

Intent i = new Intent(this, ChatActivity.class);
i.putExtra("value", "This value one for ChatActivity ");
startActivity(Intent)
将此代码放入ChatActivity的OnCreate方法中

Bundle extras = getIntent().getExtras();
if (extras == null) {
        return;
        }
// Get data via the key
String value = extras.getString(Intent.EXTRA_TEXT);
if (value != null) {
    setAttr(value)
}

welcome=(TextView)findViewById(R.id.txtWelcome)

this.setContentView()

你能在Logcat中发布错误吗?事实上,错误是java.lang.null.PointerExceptionist…我调用方法setAttr,但无意调用chatActivity…但另一个方法调用旨在加载数据并在chatActivity中显示数据,我的问题是没有调用意图就无法更新数据…是的,我想是的…因为代码没有定义为onCreate…但是如果我在另一个类中调用,我很难定义代码…实际上如果我使用的是intent是work…但是在我的情况下我不使用intent…因为如果我在一个活动中的两个条件中使用两个intent,第一个intent将在inten的第二个条件中被替换,所以我在第一意图中的数据丢失了。。但是我需要两个数据都显示出来。谢谢你尝试实现MVC架构。将数据存储在第三类(如应用程序类)上。然后继续获取数据并显示它
this.setContentView(<layout>)