2014-05-20 7 views
5

Ich versuche, einen Code in Android zu schreiben, um von einem Tab auf einen anderen Tab durch Klicken auf eine Schaltfläche zu wechseln.Wie gehen Sie andere Tabs durch Klicken auf eine Schaltfläche aus dem aktuellen Tab in Android?

Ich weiß, durch Klicken auf Registerkarte können wir von einer Registerkarte zu einer anderen wechseln, aber kann es möglich sein, von einer Registerkarte zu einer anderen Registerkarte wechseln, indem Sie auf eine Schaltfläche klicken.

Ich habe das folgende Tutorial versucht.

http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

In diesem Tutorial ich die MovieFragment.java Datei Weise in folgenden bearbeitet haben.

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; 
}} 

XML-Code:

<?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> 

ich einen Knopf in der XML-Layout und versuchen Schalter Tab erstellt haben -1, aber ich bin immer Null Pointer Ausnahme.

Fehlercode:

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) 

Bitte machen Sie mir irgendeine Lösung oder eine gute Technik, es zu tun.

Antwort

16

Sie haben in Ihrem Fragmente übergeordnete Ansicht nennen.

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; 
    } 

} 
+0

Großer Freund ... es funktioniert ausgezeichnet .... Sie sparen meinen Tag ... Vielen Dank ... – user2563306

+0

Danke, die GetActivity ist die Lösung !! – Jey10

+0

Danke Kumpel, es hat mir sehr geholfen. –

0

Ihr ViewPager ist null, weil Sie die Variable nicht initialisieren.

Sie tun müssen,

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; 
}} 
+0

Nichts arbeitet Freund ... – user2563306

+0

ist, weil Sie einen ViewPager in Ihrem XML oder lesen Sie in diesem Beispiel keine ViewPager in Ihrem XML haben, fügen http://androidtrainningcenter.blogspot.mx/2012/10 /viewpager-example-in-android.html – Chefes

+0

Ja, ich habe meinen XML-Code bearbeitet und einen ViewPager im XML-Code hinzugefügt, aber es gibt kein Ereignis, nachdem ich auf den Button geklickt habe ... bitte hilf mir ... bitte gehe durch mein XML-Code wieder ... – user2563306

Verwandte Themen