Myactivity
には inner が含まれており、private class
基本的には次のように見えますが、問題は次のとおりです。
public class MyActivity extends Activity
{
// My xmlData that I want to fill in the asynchronous task
XMLData xmlData;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
GetXMLTask task = new GetXMLTask(this);
task.execute(url);
if(xmlData == null) System.out.print("problem");
// Prints "problem" : my xmlData is null, why?
}
private class GetXMLTask extends AsyncTask<String, Void, Void>
{
public GetXMLTask(Activity context)
{
// Constructor
}
protected Void doInBackground(String... params)
{
// Here some stuff to get and parse my XML
xmlData = new XMLData(list);
System.out.print(xmlData.list.size());
// this line shows that I correctly fill my xmlData object
}
}
}
問題は、内部非同期クラスへの呼び出し後、xmlData 値が null であり、その理由がわかりません。私もこれを試しましたGetXMLTask
:
MyActivity.this.xmlData = new XMLData(list);
うまくいきませんが、なぜですか?私は何を間違っていますか?ご協力いただきありがとうございます。