Java Interfaceの使い方

5742 ワード

Java interfaceにはいろいろな使い方がありますが、最も一般的なのはinterfaceを通じてデータを伝えることです.
  • 第1種
  • public interface IData {
        void value(String str);
    }
    
    public class ClassA {
        public void sendData(IData idata){
            idata.value("This is ClassA'value");
        }
    
    public class Main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            ClassA ca = new ClassA();
            ca.sendData(new IData() {
    
                @Override
                public void value(String str) {
                    // TODO Auto-generated method stub
                    System.out.println(str);
                }
            });
    
        }
    
    }

    以上が最も簡単なデータ伝達の使い方です
  • 第2種
  • public interface IPositionListener {
    
        void selectedPosition(int postion);
    }
    public class Adapter extends PagerAdapter{
    
        private List viewList;
    
        IPositionListener iPositionListener;
    
        public Adapter(List viewList) {
            this.viewList = viewList;
        }
    
        @Override
        public int getCount() {
            return viewList.size();
        }
    
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }
    
        @Override
        public Object instantiateItem(ViewGroup container, int position) {//    
            iPositionListener.selectedPosition(position);
            container.addView(viewList.get(position));
            return viewList.get(position);
        }
    
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {//   
            container.removeView(viewList.get(position));
        }
    
    
        public void setOnItemClickListener(IPositionListener iPositionListener) {
            this.iPositionListener = iPositionListener;
        }
    }
    private void initView() {
            viewPager = (ViewPager) findViewById(R.id.viewpager);
    
            for (int i = 0; i< imgs.length; i++){
                img = new ImageView(this);
                img.setImageResource(imgs[i]);
                viewList.add(img);
            }
            initViewPagerScroll();
            Adapter adapter = new Adapter(viewList);
            viewPager.setAdapter(adapter);
            mHandler.sendEmptyMessage(0x11);
    
            adapter.setOnItemClickListener(new IPositionListener() {
                @Override
                public void selectedPosition(int postion) {
                    Toast.makeText(MainActivity.this," "+(postion+1)+"   ",Toast.LENGTH_LONG).show();
                    PicClick(postion);
                }
            });
        }
    
        private void PicClick(int postion) {
            switch (postion){
                // TODO
            }
        }