2014-05-20 10 views
5

मैं एक टैब पर क्लिक करके एक टैब से दूसरे टैब पर स्विच करने के लिए एंड्रॉइड में एक कोड लिखने की कोशिश कर रहा हूं।एंड्रॉइड में मौजूदा टैब से बटन पर क्लिक करके अन्य टैब कैसे जाएं?

मुझे टैब पर क्लिक करके पता है कि हम एक टैब से दूसरे टैब पर स्विच कर सकते हैं, लेकिन एक बटन पर क्लिक करके एक टैब से दूसरे टैब पर स्विच करना संभव हो सकता है।

मैंने निम्नलिखित ट्यूटोरियल की कोशिश की।

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

इस ट्यूटोरियल में मैं तरीके निम्नलिखित में MovieFragment.java फ़ाइल संपादित किया है।

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

मैं टैब पर XML लेआउट में एक बटन और कोशिश कर स्विच बनाया है -1, लेकिन मैं हो रही है अशक्त सूचक अपवाद।

त्रुटि कोड:

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) 

कृपया मुझे कुछ समाधान या कुछ अच्छी तकनीक यह करने के लिए सुझाव देते हैं।

उत्तर

16

आप अपने टुकड़ा अंदर जनक दृश्य कॉल करने के लिए है की जरूरत है।

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

ग्रेट फ्रेंड ... यह उत्कृष्ट काम करता है .... आप मेरा दिन बचाते हैं ... बहुत बहुत धन्यवाद ... – user2563306

+0

धन्यवाद, getActivity समाधान है !! – Jey10

+0

धन्यवाद दोस्त, इससे मुझे बहुत मदद मिली। –

0

आपका व्यूपेजर शून्य है क्योंकि आप चर को प्रारंभ नहीं कर रहे हैं।

आप

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

कुछ भी नहीं है दोस्त काम कर रहा है ... – user2563306

+0

क्योंकि आप अपने XML में एक ViewPager की जरूरत नहीं है अपने XML में एक ViewPager जोड़ सकते हैं या इस नमूने http://androidtrainningcenter.blogspot.mx/2012/10 जाँच है /viewpager-example-in-android.html – Chefes

+0

हां, मैंने अपना एक्सएमएल कोड संपादित किया है और एक्सएमएल कोड में व्यूपेगर जोड़ा है लेकिन बटन पर क्लिक करने के बाद कोई घटना नहीं है ... कृपया मेरी मदद करें ... कृपया मेरा एक्सएमएल कोड दोबारा ... – user2563306

संबंधित मुद्दे