0

我有两个活动,活动一有引用活动二的按钮和其中的方法。我正在尝试使用 TextView.SetText 在屏幕上放置一些东西,但不断收到 NullPointerException。

活动二:

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 at android.app.Activity.findViewById at data.storage.SomeActivity.spill at data.storage.SomeActivity.methodCalledFromActivityOne at data.storage.ActivityOne.button1clicked

4

2 回答 2

1

只有在调用 onCreate() 时才会初始化活动 2 中的 textview。只有当该活动进入电话视图时,才会调用活动 2 的 onCreate()。您不能从当前活动设置另一个活动的视图值。这是个坏主意。如果您希望这些值到达活动 2,则将其发送到意图中。

于 2012-10-08T13:37:27.523 回答
0

如果您 methodCalledFromActivityOne() 从另一个活动调用方法,请确保您也已TextView在该活动中创建了属性。否则它将无法正常工作。

于 2012-10-08T13:32:16.120 回答