Ich verwende eine AsyncTask-Klasse, um Daten aus einer PHP-Datei herunterzuladen. Nach dem Herunterladen möchte ich diese Daten in verschiedene TextViews einfügen, aber ich kann die Methode findViewById nicht verwenden.Kann nicht auf "findViewById" in AsyncTask zugreifen
Das Problem ist, dass ich dies durch separate Klassen tun, und das alles in einem Fragment.
Dies ist mein Code:
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;
}
Und wo ich das Problem habe:
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
this.pDialog.dismiss();
TextView comentariEditText = (TextView) findViewById(R.id.commentsMostrar);
}
Ich habe dies versucht:
TextView comentariEditText = (TextView) mContext.findViewById(R.id.commentsMostrar);
Aber die Arbeit ist nicht zu .
Beachten Sie, dass ich diese AsyncTask von einem Fragment aufrufen. Wie man sehen kann, hatte ich den Zusammenhang von getActivity() an die AsyncTask abgerufen weitergeben müssen:
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;
}
}
Was soll ich tun?
Vielen Dank.
Veröffentlichen Sie Ihren LogCat – Ahmad