2017-04-11 35 views
0

我想ViewPager刷卡基於其indicator點擊。我已經使用傑克華頓的libraryViewPager indicator,但我沒有罰款根據我的要求任何適當的解決方案。我在這個網站上看到很多關於這個問題的問題,但沒有得到任何適當的解決方案任何人都可以幫我通過點擊indicatorview pager應該如何獲得這樣的功能應該刷卡。在我的MainActivity.class下面如何獲取ViewPager指標OnClick在Android中

public class MainActivity extends AppCompatActivity { 

    private ViewPager viewPager; 
    private ViewPagerAdapter adapter; 
    private ArrayList<Integer> alPhoto; 
    private CirclePageIndicator mIndicator; 

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

     loadArrayList(); 

     // Locate the ViewPager in viewpager_main.xml 
     viewPager = (ViewPager) findViewById(R.id.pager); 
     adapter = new ViewPagerAdapter(MainActivity.this,alPhoto); 
     viewPager.setAdapter(adapter); 

     // Set for ViewPager indicator. 
     mIndicator = (CirclePageIndicator)findViewById(R.id.indicator); 
     mIndicator.setViewPager(viewPager); 
     mIndicator.setSnap(true); 

    } 

    private void loadArrayList() { 
     try { 
      alPhoto = new ArrayList<>(); 
      alPhoto.add(R.drawable.first); 
      alPhoto.add(R.drawable.second); 
      alPhoto.add(R.drawable.third); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

這是我的適配器。

public class ViewPagerAdapter extends PagerAdapter { 

    private Context context; 
    private ArrayList<Integer> alPhoto; 
    private LayoutInflater inflater; 


    public ViewPagerAdapter(Context mainActivity,ArrayList<Integer> alPhoto) { 
     this.context= mainActivity; 
     this.alPhoto=alPhoto; 
    } 

    @Override 
    public int getCount() { 
     return alPhoto.size(); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 

     return view == ((RelativeLayout) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 

     ImageView imgflag; 

     inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View itemView = inflater.inflate(R.layout.viewpager_item, container,false); 

     imgflag = (ImageView) itemView.findViewById(R.id.flag); 
     imgflag.setImageResource(alPhoto.get(position)); 

     ((ViewPager) container).addView(itemView); 

     return itemView; 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     // Remove viewpager_item.xml from ViewPager 
     ((ViewPager) container).removeView((RelativeLayout) object); 
    } 
} 
+0

嗨Sakib只設置的onclick –

回答

0

您是否嘗試設置onClick偵聽器來處理點擊您的指標? 像這樣:

private OnClickListener mIndicatorListener = new OnClickListener() { 
    public void onClick(View v) { 
     // handle your click 
    } 
}; 
mIndicator.setOnClickListener(mIndicatorListener); 
+0

目前現在的位置,我可以用你的方法來獲得點擊,但我需要設置'viewpager'也基座上指示燈的點擊,所以我怎麼能得到這樣的功能。 –

+0

你需要通過點擊指標來切換頁面,我明白你的意思了嗎?如果是的話,那麼你需要獲取每個指標的位置,並在onClickListener中放置'viewPager.setCurrentItem(positionOfSelectedIndicator)' – Rectangle

+0

是的,我需要在'indicator'的點擊位置設置'view pager',但是我無法獲得正確的位置'mIndicator click'。請幫助我如何獲得此類功能。 –

相關問題