getFragmentManager da ArrayAdapter

Ho un listView completato dal mio ArrayAdapter personalizzato. In each vista c'è un button. Voglio cambiare il frammento corrente quando si fa clic sul button. Questo è il mio codice:

public class CheckInSArrayAdapter extends ArrayAdapter<JSONObject> { @Override public View getView(int position, View convertView, ViewGroup parent) { return getViewOptimize(position, convertView, parent); } public View getViewOptimize(int position, View convertView, ViewGroup parent) { ...... viewHolder.commentBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { ??? <<<<< }); return convertView; } private class ViewHolder { ... public Button commentBtn; } } 

Adesso, non posso invocare getFragmentManager da OnClickListener. Come posso fare?

  • Come call un'attività Android da PhoneGap
  • Configurazione con il nome 'default' non trovato. Android Studio
  • Qual è la syntax corretta per definire un'attività nel file manifesto?
  • Android ListView personalizzato
  • Come mettere un jar nel classpath in Eclipse?
  • URLConnection con i cookie?
  • 2 Solutions collect form web for “getFragmentManager da ArrayAdapter”

    OK, forse sono un po 'tardi, ma forse aiuterebbe alcune persone a farlo.

    Nella class in cui si chiama l'adattatore, è necessario estendere o implementare "FragmentActivity". Quindi la tua attività contiene un fragmentManager.

    Quando chiamate l'adattatore, chiamacanvas con la class che estende FragmentActivity

     MyAdapterName = new MyAdapterName(MyClassName.this, Objects); 

    Quindi nell'adattatore in getView () – fai questo.

     final Context context = parent.getContext(); FragmentManager fm = ((Activity) context).getFragmentManager(); 

    Prestare attenzione a utilizzare il buon android FragementManager – android.app.FragmentManager non android.support.v4.app.FragmentManager;

    la sua così tardi, ma qui nessuno ha risposto a questa domanda così.

    puoi invocare il gestore di frammenti nel tuo metodo getview

     FragmentManager fm = ((Activity)context).getFragmentManager(); 

    getFragmentManager () è un metodo della class Activity.

    per esempio

     holder.tvBuy.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Fragment fragment; fragment = new Buy(); ((Activity)context).getFragmentManager().beginTransaction().replace(R.id.content_frame,fragment).commit(); } } 

    qui è necessario passare l'attività come context all'adattatore.

    spero che aiuterà qualcuno ….

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.