2012-03-07 26 views
0

我有问题,当我想更新intent.actual活动中的元素,我可以getparams并设置为元素..但问题是当我不使用意图我'使用的方法来设置我的元件..this的值m是我的代码如何更新另一个类的活动中的元素

此代码我是发生在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 .... 有什么不对? ICAN如何解决这个.. 谢谢您的回答..

+0

你可以在Logcat中发布错误吗? – 2012-03-07 07:07:07

+0

实际上错误是java.lang.null.PointerExceptionist ...我的调用方法setAttr没有意图chatActivity ...但另一种方法调用意图加载数据和在chatActivity中显示数据,我的问题只是没有更新数据intent ... – viyancs 2012-03-07 07:19:38

回答

0

认沽下面的代码

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>) 
在ProcessChat

Intent i = new Intent(this, ChatActivity.class); 
i.putExtra("value", "This value one for ChatActivity "); 
startActivity(Intent) 

将这个代码ChatActivity的onCreate方法创建新意图

+0

实际上,如果我使用intent是工作......但在我的情况下,我不使用intent ..因为如果我在一个活动中使用两个条件中的两个intent,第一个intent将会在第二个inten条件中被替换,所以我的数据在第一个inten丢失..但我需要两个数据显示..感谢您 – viyancs 2012-03-07 07:35:16

+0

然后尝试实现MVC体系结构。将数据存储在应用程序类的第三个类中。然后onResume获取数据并显示它 – 2012-03-07 10:28:43

0

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

findViewById用来定义视图不创建一个视图我想你拨打的methos在创建视图之前。所以它返回null方法。确保视图已定义,因此findviewbyid会给你一个非空值,然后只设置任何值。

+0

是的,我认为是这样的...因为该代码没有定义到onCreate ...但我很困惑定义该代码,如果我打电话在另一个类.. – viyancs 2012-03-07 07:30:48

相关问题