Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android ViewPager設置監聽注意事項,androidviewpager

Android ViewPager設置監聽注意事項,androidviewpager

編輯:關於android開發

Android ViewPager設置監聽注意事項,androidviewpager


首先 implements View.OnClickListener

因為Item比較多用這個方便

設置監聽要注意地方,如果在 onCreate 直接 findViewById布局裡的ID是會出錯的

參考下面代碼

    private void initAllViewPager() {
        viewpager = (ViewPager) findViewById(R.id.viewpager);
        //
        LayoutInflater inflater = getLayoutInflater();
        view1 = inflater.inflate(R.layout.test_page1, null);
        view2 = inflater.inflate(R.layout.test_page2, null); // gridview demo.
        //view3 = inflater.inflate(R.layout.test_page3, null);
        //view4 = inflater.inflate(R.layout.test_page4, null);
        viewList = new ArrayList<View>();// 將要分頁顯示的View裝入數組中
        viewList.add(view1);
        viewList.add(view2);
        //viewList.add(view3);
        //viewList.add(view4);


        viewpager.setAdapter(new DemoPagerAdapter());

        view1.findViewById(R.id.page1_item0).setOnClickListener(this);
        view1.findViewById(R.id.page1_item1).setOnClickListener(this);

}

設置監聽在 setAdapter 前後都可以

另外一種方法是在 PagerAdapter 的 public Object instantiateItem(ViewGroup container, int position) 

裡添加如下

        public Object instantiateItem(ViewGroup container, int position) {
            viewList.get(0).findViewById(R.id.page1_item3).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(MainActivity.this,"Click ok", Toast.LENGTH_SHORT).show();
                };
            });
                
            container.addView(viewList.get(position));


            return viewList.get(position);
        };

 

這個是按List來查找ID設置監聽,或者

        public Object instantiateItem(ViewGroup container, int position) {
            reflectitemview= (ReflectItemView) findViewById(R.id.page1_item3);
            reflectitemview.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    Toast.makeText(MainActivity.this,"Click ok", Toast.LENGTH_SHORT).show();
                }
            });

            container.addView(viewList.get(position));


            return viewList.get(position);
        };

    }

 

第一種方法方便

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved