开发者社区> 问答> 正文

JAVA 匿名内部类怎么传参给全局变量

已解决

 private void startLocation() {
        mLocationClient.start();
        mLocationClient.requestLocation();
        mLocationClient.registerLocationListener(new BDLocationListener() {
            @Override
            public void onReceiveLocation(BDLocation bdLocation) {
                if (bdLocation == null) {
                    return;
                }
                StringBuffer sb = new StringBuffer(256);
                sb.append(bdLocation.getAddrStr());
                mEditLocation.setText(sb.toString());
                StringBuffer sbcity = new StringBuffer(256);
                sbcity.append(bdLocation.getCity());
                StringBuffer code = new StringBuffer(256);
                code.append(bdLocation.getLocType());
                Log.i("error code", code.toString());
                String cityname = sbcity.toString();
                String mcityname = cityname.substring(0, cityname.length() - 1);
                //把汉语转化为拼音
                String mycityname=ChineseToPinYin.getPinYin(mcityname);
                //根据位置获取天气
                getWeather(mycityname);
                mLocationClient.stop();

                city=mycityname;
            }
        });
    }

最后的city是我定义的 全局变量,但是这样传参 全局变量是得不到值的 ,这是在监听器的匿名内部类里传参给全局变量 该怎么办?

展开
收起
蛮大人123 2016-03-13 18:35:24 3439 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    采纳回答
     public class A {
        String city = "";
       public void setCity(String city){
           this.city = city;
       }
       public void set(){
           new KInterface(){
    
            @Override
            public void test() {
                String mycityname = "";
                setCity(mycityname);//方式1
                A.this.city = mycityname;//方式2
            }          
           };
       }
    
    }

    如果有帮助,记得采纳一下

    2019-07-17 19:03:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载