¿Cómo ir a otras pestañas haciendo clic en un botón de la pestaña actual en Android?
Estoy tratando de escribir un código en Android, para cambiar de una pestaña a otra ficha haciendo clic en un botón.
Sé que al hacer clic en la pestaña se puede cambiar de una pestaña a otra, pero puede ser posible cambiar de una pestaña a otra ficha haciendo clic en un botón.
- Reemplazar ListFragment con fragmento dentro de ViewPager con pestañas
- ¿Es posible cambiar el indicador de pestaña de la barra de acciones programáticamente?
- ¿Es posible establecer el agente de usuario en Chrometab en android
- ¿Es posible cambiar el color de la pestaña seleccionada en android?
- carga diferentes actividades en pestañas
He intentado el siguiente tutorial.
En este tutorial he editado el archivo MovieFragment.java de la siguiente manera.
MovieFragment.java
package info.androidhive.tabsswipe; import info.androidhive.tabsswipe.R; import android.annotation.SuppressLint; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; public class MoviesFragment extends Fragment { ViewPager viewPager; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_movies, container, false); Button btn = (Button) rootView.findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { viewPager.setCurrentItem(0); } }); return rootView; }}
Código XML:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#17df0d"> <android.support.v4.view.ViewPager android:id="@+id/myfivepanelpager" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Design Movies Screen" android:textSize="20dp" android:layout_centerInParent="true"/> <Button android:id="@+id/btn" android:layout_width="100dp" android:layout_height="80dp" android:text="Click" /> </RelativeLayout>
He creado un botón en la disposición del xml y que intenta cambiar a la lengüeta -1 pero estoy consiguiendo la excepción del indicador nulo.
Código de error:
05-20 09:07:10.995: E/AndroidRuntime(1117): FATAL EXCEPTION: main 05-20 09:07:10.995: E/AndroidRuntime(1117): java.lang.NullPointerException 05-20 09:07:10.995: E/AndroidRuntime(1117): at info.androidhive.tabsswipe.MoviesFragment$1.onClick(MoviesFragment.java:33) 05-20 09:07:10.995: E/AndroidRuntime(1117): at android.view.View.performClick(View.java:4240) 05-20 09:07:10.995: E/AndroidRuntime(1117): at android.view.View$PerformClick.run(View.java:17721) 05-20 09:07:10.995: E/AndroidRuntime(1117): at android.os.Handler.handleCallback(Handler.java:730) 05-20 09:07:10.995: E/AndroidRuntime(1117): at android.os.Handler.dispatchMessage(Handler.java:92) 05-20 09:07:10.995: E/AndroidRuntime(1117): at android.os.Looper.loop(Looper.java:137) 05-20 09:07:10.995: E/AndroidRuntime(1117): at android.app.ActivityThread.main(ActivityThread.java:5103) 05-20 09:07:10.995: E/AndroidRuntime(1117): at java.lang.reflect.Method.invokeNative(Native Method) 05-20 09:07:10.995: E/AndroidRuntime(1117): at java.lang.reflect.Method.invoke(Method.java:525) 05-20 09:07:10.995: E/AndroidRuntime(1117): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 05-20 09:07:10.995: E/AndroidRuntime(1117): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-20 09:07:10.995: E/AndroidRuntime(1117): at dalvik.system.NativeStart.main(Native Method)
Por favor, sugerirme alguna solución o alguna buena técnica para hacerlo.
- Barra de Acción de Android - con pestañas
- Fragmento Tabhost Error: java.lang.IllegalStateException: No se conoce ninguna pestaña para la etiqueta null Cuando la conexión a Internet no está disponible
- ¿ActionBarSherlock permite activar / desactivar un ActionBar.Tab?
- TabHost setCurrentTab sólo llama al método oncreate para Actividad en la pestaña una vez
- Android: ¿Cómo se ocultan las pestañas en la barra de acción?
- El tipo ActionBar.Tab está obsoleto
- Tabulaciones de Android sin iconos
- Cambiar entre la pestaña mediante el grupo de actividades desea mostrar la última actividad - Tab ActivityGroup
Tienes que llamar a la vista padre dentro de tu fragmento.
public class MoviesFragment extends Fragment { ViewPager viewPager; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_movies, container, false); Button btn = (Button) rootView.findViewById(R.id.btn); viewPager = (ViewPager) getActivity().findViewById(R.id.pager); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { viewPager.setCurrentItem(0); } }); return rootView; } }
su ViewPager es nulo porque no está inicializando la variable.
Necesitas hacer
public class MoviesFragment extends Fragment { ViewPager viewPager; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_movies, container, false); Button btn = (Button) rootView.findViewById(R.id.btn); viewPager = (ViewPager) rootView.findViewById(R.id.some_viewpager);//Initializing btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { viewPager.setCurrentItem(0); } }); return rootView; }}
- ¿Por qué Retrofit no puede codificar correctamente la cadena de consulta con corchetes?
- Convertir automáticamente el código entre Xamarin iOS y Xamarin Android