Ho creato una classe per recuperare i commenti da una codifica JSON da un file PHP. Questa classe, si estende da AsyncTask:Recupera contesto da un frammento
public class RecuperarComentarisFoto extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(????);
pDialog.setMessage("Creating Product..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
Come potete vedere, sto cercando di mostrare un ProgressDialog mentre il proccess "doInBackground" sta lavorando. Ma progressDialog costruttore, chiede un contesto, e non so come fornirlo.
Chiamo questa classe da un frammento, quindi non posso accedere al contesto come questo:
pDialog = new ProgressDialog(MyFragmentA.context);
L'acitivity "principale" si chiama: AndroidViewPagerActivity che si estende FragmentActivity.
(. In principale, voglio dire che è quello che sta creando le schede, e la gestione la navigazione tra loro)
Questo si che è il codice:
public class AndroidViewPagerActivity extends FragmentActivity {
ViewPager mViewPager;
TabsAdapter mTabsAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViewPager = new ViewPager(this);
mViewPager.setId(R.id.pager);
setContentView(mViewPager);
final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_HOME);
bar.hide();
mTabsAdapter = new TabsAdapter(this, mViewPager);
mTabsAdapter.addTab(bar.newTab().setText("Fragment A"), MyFragmentA.class, null);
if (savedInstanceState != null) {
bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
}
}
Come posso accedere al contesto ? Quale contesto dovrei usare? Contesto "AndroidViewPagerActivity"? Quindi, come posso accedere al suo contesto da un frammento?
Grazie.
Sergi
Ok, questo ha risolto il problema. Con il tuo aiuto e un po 'di googleing in più, ho capito: D. Andando a mettere il mio codice finale, così ogni 1 può vedere implementata la risposta. – Reinherd
Chiamare getActivity() all'interno del frammento può causare NullPointerException se utilizzato su larga scala per alcuni dispositivi. Ciò accade quando la chiamata viene effettuata prima che il frammento venga collegato all'attività. Risulta anche in perdite di memoria che possono essere fatali e difficili da trovare. Passa attraverso questo per ottenere una migliore comprensione. https://android-developers.googleblog.com/2009/01/avoiding-memory-leaks.html –