有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

当我想要有目的地更新活动中的元素时,我遇到了问题。实际上,我可以获取参数并设置为元素。。但问题是,当我不使用intent时,我使用的是方法来设置元素的值。。这是我的密码

这段代码是我在聊天活动中的位置。爪哇

/*
     * set element attribute
     */

    public void setAttr(String value){
            welcome = (TextView)findViewById(R.id.txtWelcome);
        welcome.setText("welcome " + value);
    }

我在另一个类中调用该代码,该类是ProcessChat。爪哇

public void welcome(){

ChatActivity chat = new ChatActivity();
chat.setAttr("user");
}

当我运行时,我会得到错误java。lang.null。。。。 怎么了?我怎样才能解决这个问题。。 谢谢你的回答


共 (2) 个答案

  1. # 1 楼答案

    在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(<layout>)
    
  2. # 2 楼答案

    问题在下面一行welcome = (TextView)findViewById(R.id.txtWelcome);

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