Listview no actualizar en fragmento con las pestañas viewpager
Me quedé atrapado en el problema con listview utilizado con el fragmento dentro de las pestañas denominadas viewpager que se dan en jakewharton Android-ViewPagerIndicator … ejemplo en github.
Estoy utilizando la misma lib para tres pestañas cada uno con una vista de lista con el mismo arraylist establecido a los adaptadores allí.
- No se puede utilizar las pestañas con Sherlock
- Cómo ocultar las pestañas de Android utilizando Xamarin Formulario renderizador personalizado?
- Contenido de la barra ActionBar que se superpone
- ¿Cómo utilizar el flash / led de la cámara como antorcha en una lengüeta de Samsung Galaxy?
- IllegalStateException: Fragmento ya agregado en el fragmento tabhost
Estoy utilizando 3 este tipo de fragmento todos están funcionando bien, pero como quiero que mi lista se actualiza en todos los demás fragmentos cuando hago cambios en cualquiera de ellos, no es reflejo de los cambios. Quiero que si he marcado una casilla de verificación en cualquiera de la lista entre tres pestañas (estoy actualizando los valores en db y mi arraylist) otros dos listview dentro de sus respectivos fragmentos deben reflejar los cambios, por favor, ayúdame en esto. Por favor ayúdame en esto, cualquier ayuda sería apreciada
class RingFragment extends Fragment { public static RingFragment newInstance(Context c, ArrayList<Ringtones> ringList) { RingFragment fragment = new RingFragment(); cCntxt = c; return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rngAdapter = new RingAdapter(cCntxt, ringFragList); lstRingtones = new ListView(cCntxt); lstRingtones.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); lstRingtones.setAdapter(rngAdapter); LinearLayout layout = new LinearLayout(getActivity()); layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); layout.setGravity(Gravity.CENTER); layout.addView(lstRingtones); return layout; } public class RingAdapter extends BaseAdapter { ArrayList<Ringtones> arlstRingAdpter; Context adptrContext; public boolean noRing = false; public RingAdapter(Context c, ArrayList<Ringtones> adptrRngtones) { arlstRingAdpter = adptrRngtones; adptrContext = c; } @Override public int getCount() { return arlstRingAdpter.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; final Wrapper wrapper; if (view == null) { view = (RelativeLayout)LayoutInflater.from(cCntxt).inflate(R.layout.cell_ringtone, null); wrapper = new Wrapper(view); view.setTag(wrapper); } else { wrapper = (Wrapper) view.getTag(); } return view; } } } }
: -> Mi Actividad Principal desde donde llamo estos fragmentos es
public class MainActivity extends FragmentActivity { ViewPager mPager; PageIndicator mIndicator; MusicAdapter mAdapter; RingtonesBL rngBL; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAdapter = new MusicAdapter(getSupportFragmentManager()); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); mIndicator = (TabPageIndicator)findViewById(R.id.indicator); mIndicator.setViewPager(mPager); } class MusicAdapter extends RingtoneFragmentAdapter { public MusicAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if(position % CONTENT.length == 0) { return RingFragment.newInstance(AppConstants.cAppContext,AppConstants.arlst_RingAll); } else if(position % CONTENT.length == 1) { return RingFragment1.newInstance(AppConstants.cAppContext, AppConstants.arlst_RingCart); } else { return RingFragment2.newInstance(AppConstants.cAppContext, AppConstants.arlst_RingPurchased); } } public int getItemPosition(Object object) { return POSITION_NONE; } @Override public int getCount() { return CONTENT.length; } @Override public CharSequence getPageTitle(int position) { return CONTENT[position % CONTENT.length].toUpperCase(); } } }
Activity_main.xml sólo tiene
<com.ringtone.TabPageIndicator android:id="@+id/indicator" android:layout_height="wrap_content" android:layout_width="fill_parent" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/indicator" > </android.support.v4.view.ViewPager>
Por favor, dime cómo puedo notificar a los otros fragmentos listview al cambiar en cualquiera.
- ¿Cómo obtener una lista de entradas de fragmentos backstack en android?
- ¿Cómo mantener el estado del fragmento sin backstack en la pestaña?
- ¿Cómo puedo crear pestañas para un ViewPager ahora que las pestañas ActionBar están obsoletas (Lollipop)
- No se encontró ningún identificador de recurso para el atributo 'layout_behavior' en el paquete
- Android | Detener TabLayout recargar / actualizar mis fragmentos
- Fragmentos en ViewPager son nulos después onresume
- ¿Por qué aparece el teclado después de TabBar?
- Comunicarse entre diferentes instancias del mismo fragmento
Por favor, intenta hacer cosas de esta rama: por ejemplo:
else { wrapper = (Wrapper) view.getTag(); } wrapper.txtText.setText("Refreshed"); return view; }
- Sugerencias sobre cómo mejorar esta clase simple de agrupación de objetos para Java?
- No se pueden obtener contactos con cuentas de gmail sincronizadas