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

Respuesta
 
Herramientas
  #1  
Viejo 17/09/14, 02:39:48
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
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.
Responder Con Cita


  #2  
Viejo 18/09/14, 18:57:50
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
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.
Responder Con Cita
  #3  
Viejo 18/09/14, 19:21:48
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
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.
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 18/09/14, 20:16:28
Array

[xs_avatar]
LEAJIM_454 LEAJIM_454 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 215
Modelo de smartphone: Galaxy Ace
Tu operador: Otra
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
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 por tu respuesta, intente usar onClickListener y al hacer click en el boton me da error y uso en este un swith, luego probe con un onClick desde el layout y una public void y tampoco el problema persiste.

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);
        
    }
}
Edito: Me conformo con que un boton se pueda pulsar y con eso lo tendria solucionado, no hay nada que me funcione hasta ahora.

Última edición por LEAJIM_454 Día 18/09/14 a las 21:30:36.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 07:47:21 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /