从MainActivity中删除代码

时间:2013-01-24 16:30:43

标签: android

我还是Android开发的新手,我仍然不知道编写代码的好方法。目前我把所有内容都扔进MainActivity。但我不认为这是写它的好方法。我一直在搜索谷歌,但我真的不知道该搜索什么。有人有任何提示吗?

我打算尝试使用我拥有的一些代码并将其放入视图中,但是当我这样做时,我会收到错误。

例如,当我将其放在视图中时,我会得到cannot find symbol LOCATION_SERVICE

public class MainView extends View{
    public double[] getLoc(){
        // Get the location manager
        LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
    }
}

这基本上是来自获取用户纬度和经度的函数的片段。它在我假设的视图中不起作用。该代码确实可以在我的MainActivity中使用。

2 个答案:

答案 0 :(得分:2)

使用

LocationManager locationManager =
                     (LocationManager)getSystemService(Context.LOCATION_SERVICE);

而不是

LocationManager locationManager = 
                     (LocationManager)getSystemService(LOCATION_SERVICE);

用于访问LOCATION_SERVICE

并且还需要使用当前上下文来调用getSystemService方法以获取Service:

public class MainView extends View{
Context context;

public MainView(Context context){
this.context=context;
}

   public double[] getLoc(){
        // Get the location manager
        LocationManager locationManager = 
           (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
    }
}

答案 1 :(得分:1)

您可以将Context传递给其他类和View类,以执行您在Main Activity中所做的操作。像这样:

public void doStuff(Context context){
    LocationManager locationManager =(LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
}

在您的活动中,您可以:

doStuff(getBaseContext());

使用此方法