2012-10-08 171 views
0

我有两个活动,活动之一有按钮,指向活动二和其中的方法。我试图使用TextView.SetText把东西放在屏幕上,但不断得到NullPointerException。Android TextView.SetText空指针异常

活动2:

public class SomeActivity extends Activity { 
TextView textview ; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.some_activity); 

    textview = (TextView) findViewById(R.id.textview); 
    spill("Some text"); 

} 
public void spill(String s){ 
    textview.setText(s); 
} 

public void methodCalledFromActivityOne(){ 
    System.out.println("Works"); 
    spill("Why Doesn't this work?"); 
} 

XML有这样的:

<TextView 
    android:id="@+id/textview" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="" 
    tools:context=".SomeActivity" /> 

我是新来的Android和就会很感激所有/任何帮助。

编辑:XML的名称是好的,只有当我在调用methodCalledFromActivityOne()的活动1中按下按钮1时,错误才会发生。 这是我从LogCat中得到的: 引起的:java.lang.NullPointerException在android.app.Activity.findViewById在data.storage.SomeActivity.spill在data.storage.SomeActivity.methodCalledFromActivityOne at data.storage.ActivityOne。按钮1已点击

+0

当你得到一个错误,请给我们提供一些更多的信息,比如什么规则,错误发生......我猜你的XML文件有错误的名称,你的XML文件的名称应该是:some_activity.xml在这种情况下! – Ferdau

+0

何时调用此方法methodCalledFromActivityOne? – Shachillies

+0

如果您致电 public void spill(String s){text; textview.setText(s); } 从第一个活动开始,您将得到NullPointerException,因为此TextView不存在于该活动的布局中。请张贴第一个活动的代码和它的xml布局 –

回答

0

如果您从其他活动调用methodCalledFromActivityOne()方法,请确保您在该活动中也创建了TextView属性。否则它不会工作。

1

仅当调用onCreate()时,才会初始化活动2中的textview。活动2的onCreate()仅在此活动进入电话视图时才会被调用。您不能从当前活动设置其他活动的视图值。这是一个坏主意。 如果您想让这些值进入活动2,请发送这些意向。

+0

你能举个例子吗? – wantsToLearnAndroid

+0

转到http://www.vogella.com/articles/AndroidIntent/article.html并向下滚动到1.4节 – rahul

+0

或转到http://stackoverflow.com/questions/4872856/data-transfer-from-one-activity -to-another-activity-on-button-click-event – rahul