Acceder a textview dentro de un fragmento en la actividad

Quería usar Fragmentos con en la barra de acción. Por desgracia parece que es realmente complicado. Mis fragmentos tienen visiones de texto y quiero ser capaz de comunicarse con ellos fuera de mi actividad. Antes de comenzar a usar Fragments, podía acceder a ellos con

private EditText editText = (EditText) findViewById(R.id.editTextName); 

Así que pude recibir el valor editText cuando un usuario hizo clic en guardar. ¿Cómo debo hacer esto en el Fragment-way?

Actividad:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_recipe); getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); getSupportActionBar().setDisplayOptions(0, com.actionbarsherlock.app.ActionBar.DISPLAY_SHOW_HOME | com.actionbarsherlock.app.ActionBar.DISPLAY_USE_LOGO | com.actionbarsherlock.app.ActionBar.DISPLAY_SHOW_TITLE); ActionBar.Tab newTab0 = getSupportActionBar() .newTab() .setText(R.string.fragment_general) .setTabListener( new MyTabListener<GeneralFragment>(this, "general", GeneralFragment.class)); getSupportActionBar().addTab(newTab0); } public static class MyTabListener<T extends Fragment> implements TabListener { private Fragment mFragment; private final Activity mActivity; private final String mTag; private final Class<T> mClass; /** * * Constructor used each time a new tab is created. * * @param * activity * The host Activity, used to instantiate the fragment * @param * tag * The identifier tag for the fragment * @param clz * The * fragment's Class, used to instantiate the fragment */ public MyTabListener(Activity activity, String tag, Class<T> clz) { mActivity = activity; mTag = tag; mClass = clz; } /* The following are each of the ActionBar.TabListener callbacks */ public void onTabSelected(Tab tab, FragmentTransaction ft) { // Check if the fragment is already initialized if (mFragment == null) { // If not, instantiate and add it to the activity mFragment = Fragment.instantiate(mActivity, mClass.getName()); ft.add(android.R.id.content, mFragment, mTag); } else { // If it exists, simply attach it in order to show it //ft.setCustomAnimations(android.R.animator.fade_in, R.animator.animationtest); ft.attach(mFragment); } } public void onTabUnselected(Tab tab, FragmentTransaction ft) { if (mFragment != null) { //ft.setCustomAnimations(android.R.animator.fade_in, R.animator.test); ft.detach(mFragment); } } public void onTabReselected(Tab tab, FragmentTransaction ft) { } } 

Debería llamar a getView () en el fragmento y luego usar findViewById () en la vista devuelta.

Por supuesto, no va a devolver nada hasta después de que la vista se ha creado, por lo que puede tener que llamar a algún lugar, además de crear.

Bueno, necesitas inflar un archivo xml, o crear uno desde cero, aunque no lo recomiendo, a menos que te guste el trabajo extra 🙂 Pero con una Actividad, el setContentView() infla tu archivo xml y posteriormente en onCreate() puede acceder a ella de la manera que se utiliza para. Tenga en cuenta que, si intenta acceder a una vista de diseño fuera de onCreate sin la vista primaria, obtendrá el mismo problema. A menos que hagas una variable global. Dado que onCreate es donde un desarrollador normalmente siempre comienza las cosas, Android hizo fácil simplemente omitir el padre Ver desde el findViewById .

Suponiendo que tiene un archivo xml llamado edit.xml:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //this method is found within your Fragment, which you must ovverride View view = inflater.inflate(R.layout.edit, container, false); private EditText editText = (EditText) view.findViewById(R.id.editTextName); //... } 

Siéntase libre de revisar los documentos Android de Fragmentos para obtener una mejor comprensión de por qué elegí hacerlo en ese método en lugar de los Fragmentos onCreate , etc.

  • Conexión a un puerto bluetooth específico en un dispositivo bluetooth mediante Android
  • ¿Cómo administrar el estado de Android MediaPlayer, errores y excepciones?
  • Comunicación de bajo nivel en Android / otras plataformas móviles
  • ¿Cómo puedo determinar la longitud de los bytes recibidos del método UsbRequest.queue (..)?
  • Aplicaciones firmadas con Android
  • Cómo actualizar el estado en React Native para Android
  • ¿Empujar datos de un dispositivo a otro?
  • Enviar datos de Servicio a mi actividad
  • Android - getTargetFragment y setTargetFragment - ¿Para qué se usan?
  • Mejores Prácticas de Android - Comunicación entre Actividad y Fragmentos
  • Android comunicación entre dos aplicaciones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.