Cómo acceder a variables de actividad de un fragmento Android
En la Actividad que tengo:
public class tabsmain extends Activity{ public static Context appContext; public boolean lf_ch=false; public void onCreate(Bundle savedInstanceState){
Quisiera tener acceso y posiblemente cambiar lf_ch de un fragmento dentro de tabsmain;
- FPS malo en el juego 2D android / java en dispositivos de alta definición
- ¿Qué significa "String ... params" significa que se pasa como un parámetro?
- Java.lang.IllegalStateException: No conectado. Call connect () - API de YouTube
- Android: cómo mostrar el gridview en blanco con el botón
- Compartir texto en facebook con la intención de compartir de Android
public class tabquests extends Fragment{ public CheckBox lc; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)//onCreateView { lc.setChecked(//set it to lf_ch);
Sin embargo, no puedo tener acceso al valor de lf_ch.
- OOP diseño vs rendimiento en los teléfonos inteligentes
- Añadir elementos a ListView - Android
- Anidado postDelayed / Runnable / Handler Android
- SimpleDateFormat 24h
- Tipo de soporte no admitido: estado HTTP 415
- Copia el directorio de los activos a la carpeta de datos
- Android / Gradle / Unity - incluye todas las dependencias en el complemento AAR
- Android HttpClient y Cookies
Prueba esto:
public View onCreateView(...){ tabsmain xxx = (tabsmain)getActivity(); lc.setChecked(xxx.lf_ch); }
Sé que esto es una vieja pregunta, sin embargo aquí está una respuesta fácil que trabaje sin saltar a través de ningunos aros. En usted Fragmento definir una variable que es la actividad que el fragmento será entonces en el onCreateView conectar la variable a la actividad y, a continuación, tiene una referencia que puede llegar a cualquier variable pública en la actividad principal. Lo había olvidado cuando terminé aquí. Es un poco difícil de hacer la otra manera como usted necesita para encontrar el fragmento exacto que se muestra. Sin embargo, con esto usted no debe tener que hacerlo de la otra manera, ya que puede pasar fácilmente las cosas de ida y vuelta. Espero que esto ayude a cualquiera que se le ocurra.
public Quiz_Avtivity mainQuiz; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_quiz, container, false); mainQuiz = (Quiz_Avtivity) getActivity(); //Below is where you get a variable from the main activity mainQuiz.AnyPublicVariable = whatEver; //also whatEver = mainQuiz.AnyPublicVariable
Intente tabsmain.appContext.lf_ch
le dará el valor de u de esa variable.
También en ese conjunto de actividades appContext = this
prueba esto
public boolean lf_ch=false; public class tabsmain extends Activity{ public static Context appContext; public void onCreate(Bundle savedInstanceState){
Puede probar el siguiente método:
lc.setChecked(((yourpackagename)getActivity()).lf_ch);
Otra forma de obtener datos de la actividad es acceder a la intención de la actividad mediante:
getActivity.getIntent().getExtras();
y etc.
Puede ser útil si inicia actividad con fragmento en xml y desea controlar el comportamiento onCreate () de algún fragmento.
PS: de la causa usted primero debe poner algo a la intención
Pruebe algo como esto:
ViewPager mViewPager = (ViewPager) getActivity().findViewById(R.id.m_view_pager);
Cambiar: public boolean lf_ch=false;
A: public static boolean lf_ch=false;
Puede acceder / cambiar el valor con: tabsmain.lf_ch
- Webcal: // soporte en Android no funciona – hay una alternativa de alimentación de calendario compatible
- ViewPager llamada setUserVisibleHint después de que se carga el primer fragmento