-1

私は を持ってclass Aclass BますActivity。では、以下に示すようにActivity Bを作成しましたが、 からこのメソッドを呼び出すと、が取得されます。fillVariableActivity AnullPointerException

アクティビティ:

public class A extends Activity{

    B b;

    public void onCreate(Bundle sc){
        setContentView(R.layout.first);
        b = new B();
        b.fillVariable();
    }
}

B アクティビティ:

public class B extends Activity{

    Resources res;

    public void onCreate(Bundle sc){
    }

    public void fillVariable() {
        res = this.getResources();
        String temp = res.getString(R.string.myString);
    }
}
4

1 に答える 1

0

thisのような A クラスを渡すb = new B(this);必要があります。これは、次のアクティビティを呼び出しているため、アクティビティのコンテキストが必要だからです。

のように、クラス B にコンテキストを作成しますContext ctx

class b Constructor次のように、ファイル b で定義します。

public B(A obj) {
    // TODO Auto-generated constructor stub
    this.ctx = obj;
}

そして、次のように、任意の関数でコンテキスト obj を使用してリソースを使用します。

public String temp;
temp = ctx.getString(R.string.me);

走っています。楽しみ...

于 2012-11-03T09:55:03.297 に答える