0

Activity クラスを拡張しないヘルパー クラスを設定しようとしています。でpackagemanagerオブジェクトを取得する必要がありますgetPackageManager()。これどうやってするの?

なぜこれが必要なのですか?さて、私はこのヘルパー クラスをセットアップしようとしていますActivity。ただし、ヘルパー オブジェクトが null だったので、常に nullpointerexceptions が発生しました。

任意のヒント?

4

1 に答える 1

1

通常、やろうとしていることを行う最善の方法Contextは、新しいクラスのコンストラクターに を渡します。そうすれば、それを使用して、に属するメソッドを呼び出すことができますActivity

以下に例を示します。問題の解決に役立つはずです。

private Context context;

// ...

public HelperClass(Context c){
    context = c;
}

// ...

context.getPackageManager();

新しいクラスを初期化するときに Context を追加するだけで呼び出すことができます。

new HelperClass(this);

Fragment などの特定の状況では、getActivity();.

new HelperClass(getActivity());

上記のようにクラスを編集してみて、改善点があればお知らせください。

context = c.getApplicationContext();コメントで述べたように、コンテキストを使用してビューなどを編集する予定がない限り、コンストラクターで使用する方がよいでしょう。

于 2013-08-02T22:59:48.470 に答える