rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

MainActivity -> SecondActivity -> AsyncTask の流れで、MainActivityのリソースに定義された文字列をAsyncTaskで利用する android開発

2020 Apr. 26.
2020 Apr. 25.


MainActivityからSecondActivityを呼び出す
MainActivity.java

Intent intent = new Intent(getApplication(), SecondActivity.class);
startActivityForResult(intent, 100);


SecondActivity内で、getBaseContext().getResources()でアクティビティのリソースを取得して、AsyncTaskに渡す
SecondActivity.java

Resources myRes = getBaseContext().getResources();
SampleTask mySampleTask = new SampleTask( myRes );
mySampleTask.execute();


AsyncTaskを継承するクラス定義のイニシャライズでアクティビティのリソースを取り出し、getString()で文字列を得る
SampleTask.java

public class SampleTask extends AsyncTask<Void, Void, Void> {
    private Resources parentResources;

    // initialize
    SampleTask(Resources parentResources) {
          this.parentResources = parentResources;
    }

    // use of parentResources
    String myStr = parentResources.getString(string.myString);  // R of "R.string.myString" does not need.
}