AsyncTaskクラスを使用してphpファイルからデータをダウンロードしています。ダウンロードした後、このデータを別のTextViewに配置したいのですが、メソッドfindViewByIdを使用できません。
問題は、私がこれを別々のクラスで行っていることであり、それはすべてフラグメント内にあります。
これは私のコードです:
public class RecuperarComentarisFoto extends AsyncTask<String, String, String>{
private Context mContext;
[...]
public RecuperarComentarisFoto(Context context){
this.mContext=context;
}
@Override
protected void onPreExecute() {
[...]
}
@Override
protected String doInBackground(String... arg0) {
params.add(new BasicNameValuePair("pid", "1"));
JSONObject json = jsonParser.makeHttpRequest(url_get_comentaris, "GET", params);
JSONArray productObj;
//HERE I RETRIEVE DATA FROM JSON. ITS WORKING OK.
return null;
}
そして、私が問題を抱えているところ:
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
this.pDialog.dismiss();
TextView comentariEditText = (TextView) findViewById(R.id.commentsMostrar);
}
私はこれを試しました:
TextView comentariEditText = (TextView) mContext.findViewById(R.id.commentsMostrar);
しかし、あまり機能していません。
このAsyncTaskをフラグメントから呼び出していることに注意してください。ご覧のとおり、getActivity()によって取得されたコンテキストをAsyncTaskに渡す必要がありました。
public class MyFragmentA extends Fragment {
Context cont;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View myFragmentView = inflater.inflate(R.layout.fragment_a, container, false);
cont=getActivity();
new RecuperarComentarisFoto(cont).execute();
return myFragmentView;
}
}
私は何をすべきか?
ありがとうございました。