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

时间:2012-03-07 07:04:05

标签: java android android-layout android-intent

我有问题当我想用intent更新活动中的元素。实际上我可以getparams并设置为element ..但问题是当我没有使用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 .... 怎么了 ?怎么可以解决这个问题.. 谢谢你的回答..

2 个答案:

答案 0 :(得分:0)

问题出现在以下行welcome = (TextView)findViewById(R.id.txtWelcome);

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

答案 1 :(得分:0)

使用以下代码在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)
}

OR

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

之前添加以下代码
this.setContentView(<layout>)