2016-05-06 38 views
1

以下是我的custompageadapter代碼。我的第一頁上有單選按鈕。如何選擇任何單選按鈕時向用戶顯示第二頁。更改viewPager的頁碼

import android.content.Context; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.Toast; 

public class CustomPageAdapter extends PagerAdapter { 

    private Context mContext; 
    ViewGroup layout; 

    public CustomPageAdapter(Context context) { 
     mContext = context; 
    } 

    @Override 
    public Object instantiateItem(ViewGroup collection, int position) { 
     final CustomPagerEnum customPagerEnum = CustomPagerEnum.values()[position]; 
     LayoutInflater inflater = LayoutInflater.from(mContext); 
     layout = (ViewGroup) inflater.inflate(customPagerEnum.getLayoutResId(), collection, false); 
     switch (position) { 
      case 0: 
       final RadioGroup radio = (RadioGroup) layout.findViewById(R.id.radioOption); 
       radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(RadioGroup group, int checkedId) { 

         View radioButton = radio.findViewById(checkedId); 
         int index = radio.indexOfChild(radioButton); 

         // Add logic here 

         switch (index) { 
          case 0: // first button 

           Toast.makeText(mContext, "sdfdsfd"+index , Toast.LENGTH_LONG).show(); 


          case 1: // secondbutton 

           Toast.makeText(mContext, "sdfsdds"+index , Toast.LENGTH_LONG).show(); 


         } 
        } 
       }); 
       break; 
      case 1: 

       break; 
     } 

     collection.addView(layout); 

     return layout; 
    } 



    @Override 
    public void destroyItem(ViewGroup collection, int position, Object view) { 
     collection.removeView((View) view); 
    } 

    @Override 
    public int getCount() { 
     return CustomPagerEnum.values().length; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == object; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     CustomPagerEnum customPagerEnum = CustomPagerEnum.values()[position]; 
     return mContext.getString(customPagerEnum.getTitleResId()); 
    } 


} 

回答

1

下面是使用動態單選按鈕作爲viewpager的指示器的示例: (從片段本例中,所以對於您的使用只是調整)

final RadioGroup radioGroup = (RadioGroup) rootView.findViewById(R.id.radiogroup); 

    final RadioButton[] rb = new RadioButton[items.length]; 

    for (int i = 0; i < items.length; i++) { 
     final int j = i; 
     rb[i] = new RadioButton(rootView.getContext()); 
     radioGroup.addView(rb[i]); 
     rb[i].setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       viewPager.setCurrentItem(items.length - j - 1); 
      } 
     }); 
    } 
+0

感謝您的溶液。我在我的活動中創建了一個getter和setter,並將其用在我的custompageviewer中 – LearningPhase