说下我的情况:在做关于map的东西
写了个myItemizedOverlay继承ItemizedOverlay,添加到mapview的Overlays中。触屏操作上还行,问题是在MapActivity中有个spinner和textview,当我点击myItemizedOverlay中的OverlayItem时,需要获取spinner和textview的值再操作。class Map extends MapActivity {    Spinner spinner;
    TextView textview;    .....
    overlays.add(myItemizedOverlay);    class myItemizedOverlay extends ItemizedOverlay{
        //这种内部类的方式我可以直接获取spinner和textview,或者adapter
    }
}
class Map extends MapActivity {    Spinner spinner;
    TextView textview;    .....
    overlays.add(myItemizedOverlay);
   
}
class myItemizedOverlay extends ItemizedOverlay{
      //当我单独写这个类时不能获取spinner和textview
      //传入context也不能行,比如findViewById会说“该类型的context没有findViewById方法”
      //构造函数里直接传入spinner倒是可以。。不过总觉得很奇怪。
}问题1:我该如何获取spinner和textview的值呢?总不能都是内部类吧,看的不方便。
问题2:内部类什么时候用合适?(google过一些,但是不甚明了)
自知一些基础不是很好,忘大侠们能耐心赐教....

解决方案 »

  1.   

    问题1:
    可以定义一个接口,并让Map这个Activity去实现它;然后myItemizedOverlay通过调用这个接口的方法来取到spinner和textview的值.问题2:
    内部类可以直接访问所属类的private成员.内部类可以用来封装一些所属类的处理.
    简单来说就是在一个大文件夹里,建一些子文件夹,你不建也可以,比较乱而已.另
    //当我单独写这个类时不能获取spinner和textview
    当然取不到,都不是一个类.至少也要通过实例来取把.
    //传入context也不能行,比如findViewById会说“该类型的context没有findViewById方法”
    findViewById是Activity的方法,不是context的方法.
    //构造函数里直接传入spinner倒是可以。。不过总觉得很奇怪。
    通过构造函数来传是可以的,不奇怪.
      

  2.   

    如果定义成外部类那就要把Spinner 和TextView 的值存起来,在myItemizedOverlay 类中再取