11

यहाँ मेरी कोड है:स्वाइप क्लिक

FirstView.java

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.TextView; 

public class FirstView extends Fragment 
{ 
    private TextView firstText; 
    private Button btn; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 


     View view = inflater.inflate(R.layout.fragment_view1,container,false); 


     firstText = (TextView)view.findViewById(R.id.viewOneText); 
     btn = (Button)view.findViewById(R.id.viewOneBtn); 

     btn.setOnClickListener(new ButtonEvent()); 
     return view; 

    } 

    private class ButtonEvent implements OnClickListener 
    { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      new SecondView(); 

     } 

    } 
} 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.TextView; 

public class SecondView extends Fragment 
{ 
    private TextView secondText; 
    private Button secondViewBtn; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 


     View view = inflater.inflate(R.layout.fragment_view2,container,false); 


     secondText = (TextView)view.findViewById(R.id.secondViewText); 
     secondViewBtn = (Button)view.findViewById(R.id.secondViewBtn); 

     secondViewBtn.setOnClickListener(new ButtonEvent()); 
     return view; 

    } 

    private class ButtonEvent implements OnClickListener 
    { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      secondText.setText("Second View Text changed"); 

     } 

    } 
} 

MainActivity.java SecondView.java

import android.os.Bundle; 
import android.app.Activity; 
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.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.Menu; 

public class MainActivity extends FragmentActivity { 

    private ViewPager viewPager; 
    private MyAdapter pageAdapter; 
    private static final int ITEMS = 2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     viewPager = (ViewPager)findViewById(R.id.pager); 
     pageAdapter = new MyAdapter(getSupportFragmentManager()); 
     viewPager.setAdapter(pageAdapter); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    public static class MyAdapter extends FragmentPagerAdapter { 


     public MyAdapter(FragmentManager fragmentManager) { 
      super(fragmentManager); 
     } 

     @Override 
     public int getCount() { 
      return ITEMS; 
     } 

     @Override 
     public Fragment getItem(int position) { 
      if(position==0) 
      { 
       return new FirstView(); 
      } 
      else 
      { 
       return new SecondView(); 
      } 
     } 
    } 

} 

इस कोड में, जब मैं फर्स्ट व्यू में Button पर क्लिक करता हूं, तो मुझे सेकंडव्यू में स्थानांतरित करने की आवश्यकता होती है। मैंने Intents के साथ प्रयास किया लेकिन अनुमान लगाया कि यह गलत है। वर्तमान में ViewPager की वजह से स्वाइप फ़ंक्शन हो रहा है, मुझे उसी स्वाइप कार्यक्षमता के साथ बटन क्लिक होने पर सेकंडव्यू में जाने के लिए इसकी आवश्यकता है।

उत्तर

28

बस एक नई विधि है कि अपनी गतिविधि के टुकड़े चाल जोड़ें:

public void setCurrentItem (int item, boolean smoothScroll) { 
    viewPager.setCurrentItem(item, smoothScroll); 
} 

और यह एक बटन श्रोता से फोन:

((MainActivity)getActivity()).setCurrentItem (1, true); 
+0

उत्तर के लिए धन्यवाद। यह विधि 'गतिविधि' या 'टुकड़ा' के लिए आता है? मेरा मतलब है 'MainActivity.java' या 'FirstView.java'? –

+0

'MainActivity.java' –

+0

हां, बढ़िया। धन्यवाद –

2

आप नीचे दिए गए कार्यों अपनी गतिविधि में परिभाषित कर सकते हैं:

public void next_fragment(View view) { 
    viewPager.setCurrentItem(viewPager.getCurrentItem()+1); 
} 

public void previous_fragment(View view) { 
    viewPager.setCurrentItem(viewPager.getCurrentItem()-1); 
} 

फिर उन्हें अपने लेआउट से कॉल करें:

android:onClick="next_fragment" for the "NEXT" button 

और

android:onClick="previous_fragment" for the "PREVIOUS" button 
संबंधित मुद्दे