![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Poner eventos a un fragment como si fuera una actividad
Hola, estuve haciendo un listView pero por mucho que intentaba no lo lograba ahora lo hare de otra manera esa parte de mi aplicacion y es que implemente un tabhosy para hacer un navigation drawer creo que se llama asi y queria saber como hacer para implementar algo en funcion a lo que se esta mostrando este es mi codigo:
Código:
package com.JimSoft.Table; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class MainActivity extends FragmentActivity{ SectionsPagerAdapter mSectionsPagerAdapter; // Host de todo el contenido ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Crea el Adapter que devuelve un Fragment por cada sección mSectionsPagerAdapter = new SectionsPagerAdapter( getSupportFragmentManager()); // Establece el ViewPager con las secciones del Adapter mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mSectionsPagerAdapter); } @Override protected void onStart() { super.onStart(); // Establece por Default la Posición 1 mViewPager.setCurrentItem(0); } /** * Devuelve un Fragment Correspondiente en cada Seccion/Tab/Pagina */ public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment = new Fragment(); Bundle args = new Bundle(); switch (position) { case 0: fragment = new Fragment_1(); // Fragment 1 fragment.setArguments(args); break; case 1: fragment = new Fragment_2(); // Fragment 2 fragment.setArguments(args); break; case 2: fragment = new Fragment_3(); // Fragment 3 fragment.setArguments(args); break; default: break; } return fragment; } @Override public int getCount() { // Total de páginas return 3; } @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return "Titulo 1"; case 1: return "Titulo 2"; case 2: return "Titulo 3"; } return null; } } public static class Fragment_1 extends Fragment { public Fragment_1() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } } public static class Fragment_2 extends Fragment { public Fragment_2() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_second, container, false); return rootView; } } public static class Fragment_3 extends Fragment{ public Fragment_3() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_third, container, false); return rootView; } } } Y queria hacer algo asi if(Se esta mostrando el fragment 1){ Hacer que el TTS funcione y diga algo } No se si me entienden, gracias por su ayuda realmente se los agradezco. |
|
#2
|
||||
|
||||
Alguien que pueda ayudarme por favor?, estoy dias con esto y no se que hacer, hasta visite stackoverflow y no existe algo concreto, gracias de nuevo.
|
#3
|
||||
|
||||
El ciclo de vida de un Fragment es un poco distinto al de una Activity, de todas formas para lo que quieres hacer puedes usar los eventos de la Activity, comprobando que el Fragment que es visible en ese momento es el fragment1.
|
Gracias de parte de: | ||
#4
|
||||
|
||||
Cita:
este es el fragment en el que estoy trabajando, gracias kriogeN por tu respuesta. Código:
package com.JimSoft.Entertainment.Edu.LearnWithEnuma; import android.os.Bundle; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; public class HumoDeFelicidad extends Fragment implements OnInitListener, OnClickListener { private String DescripcionCuentoHumoDeFelicidadString; private TextToSpeech TTSEnuma; private String DescripcionHumo; public HumoDeFelicidad() { } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { DescripcionCuentoHumoDeFelicidadString = (String)getString(R.string.descripcion_humo_de_felicidad); DescripcionHumo = (String)getString(R.string.descripcion_humo_de_felicidad); View rootView = inflater.inflate(R.layout.activity_menu_cuentos_humo_de_felicidad_fragment, container, false); return rootView; } public void DescripcionCuentoHumoDeFelicidad(View v){ ParametrosTTS(DescripcionCuentoHumoDeFelicidadString); } public void ParametrosTTS(String str) { TTSEnuma.speak(str, TextToSpeech.QUEUE_FLUSH, null); TTSEnuma.setPitch(0.0f); TTSEnuma.setSpeechRate(-2.0f); } @Override public void onInit(int status) { ParametrosTTS(DescripcionCuentoHumoDeFelicidadString); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.BotonDescipcionHumoDeFelicidad: HablarAmigo(); break; } } private void HablarAmigo() { ParametrosTTS(DescripcionHumo); } } Última edición por LEAJIM_454 Día 18/09/14 a las 21:30:36 |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 05:04:41 (GMT +2)
HTCMania: líderes desde el 2007