1. ホーム
  2. android

[解決済み] 非アクティビティクラスで getResources() を使用する

2022-08-10 17:48:35

質問

非アクティビティクラスで getResources メソッドを使用しようとしています。resources フォルダに格納されている xml ファイルにアクセスできるように、"resources" オブジェクトへの参照を取得するにはどうしたらよいでしょうか。

例を挙げます。

XmlPullParser xpp = getResources().getXml(R.xml.samplexml);

どのように解決するのですか?

を渡す必要があります。 context オブジェクトを渡さなければなりません。どちらかというと this への参照がある場合、または getApplicationContext()

public class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        RegularClass regularClass = new RegularClass(this);
    }
}

そして、コンストラクタで使用します(インスタンス変数に設定することもできます)。

public class RegularClass(){
    private Context context;

    public RegularClass(Context current){
        this.context = current;
    }

    public findResource(){
        context.getResources().getXml(R.xml.samplexml);
    }
}

コンストラクタが Context をパラメータとして受け取ります。