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;

 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.

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

  • Android: No se puede encontrar la clase de actividad explícita ... startActivity desde una preferenciaActividad
  • Google mapa cuestión incluso todos los ajustes son correctos según google doc
  • Reconocer las letras dadas por una persona usando java
  • ¿Hay una manera de configurar la altura y el contenido de ajuste al mismo tiempo en android?
  • IllegalArgumentException readExceptionFromParcel
  • Cómo convertir HashMap a json Array en android?
  • Mocking un campo inyectado en las pruebas unitarias
  • El botón de Android muestra diferentes mensajes de Toast dependen del número de clics
  • ¿Cómo entender que muestra LeakCanary?
  • Ocultación de la barra de título / barra de notificación cuando el dispositivo está orientado al paisaje
  • ¿Cómo instanciar el servicio android con un constructor?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.