0

2 つのアクティビティがあり、アクティビティ 1 には、アクティビティ 2 とその中のメソッドを参照するボタンがあります。TextView.SetText を使用して画面に何かを表示しようとしていますが、NullPointerException が発生し続けます。

アクティビティ 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 から得たものです:

4

2 に答える 2

1

アクティビティ 2 の textview は、onCreate() が呼び出されたときにのみ初期化されます。そして、アクティビティ 2 の onCreate() は、このアクティビティが phone ビューに入ったときにのみ呼び出されます。現在のアクティビティから別のアクティビティのビューの値を設定することはできません。それは悪い考えです。値をアクティビティ 2 に取得する場合は、それらをインテントで送信します。

于 2012-10-08T13:37:27.523 に答える
0

別のアクティビティからメソッドを呼び出す場合は 、そのアクティビティでもプロパティをmethodCalledFromActivityOne() 作成したことを確認してください。TextViewそうしないとうまくいきません。

于 2012-10-08T13:32:16.120 に答える