首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

如何获取控件的值

2012-03-09 
怎么获取控件的值?说下我的情况:在做关于map的东西写了个myItemizedOverlay继承ItemizedOverlay,添加到map

怎么获取控件的值?
说下我的情况:在做关于map的东西
写了个myItemizedOverlay继承ItemizedOverlay,添加到mapview的Overlays中。触屏操作上还行,问题是在MapActivity中有个spinner和textview,当我点击myItemizedOverlay中的OverlayItem时,需要获取spinner和textview的值再操作。

Java code
class Map extends MapActivity {    Spinner spinner;    TextView textview;    .....    overlays.add(myItemizedOverlay);    class myItemizedOverlay extends ItemizedOverlay{        //这种内部类的方式我可以直接获取spinner和textview,或者adapter    }}

Java code
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:
可以定义一个接口,并让Map这个Activity去实现它;然后myItemizedOverlay通过调用这个接口的方法来取到spinner和textview的值.

问题2:
内部类可以直接访问所属类的private成员.内部类可以用来封装一些所属类的处理.
简单来说就是在一个大文件夹里,建一些子文件夹,你不建也可以,比较乱而已.


//当我单独写这个类时不能获取spinner和textview
当然取不到,都不是一个类.至少也要通过实例来取把.
//传入context也不能行,比如findViewById会说“该类型的context没有findViewById方法”
findViewById是Activity的方法,不是context的方法.
//构造函数里直接传入spinner倒是可以。。不过总觉得很奇怪。
通过构造函数来传是可以的,不奇怪.
[解决办法]
如果定义成外部类那就要把Spinner 和TextView 的值存起来,在myItemizedOverlay 类中再取

热点排行