如何从其他类设置TextView文本?

时间:2012-03-17 01:52:48

标签: java android

我正在尝试在用户位置更改时设置textview文本。 GPS部分的所有代码都有效。我一直在使用Log();

进行测试

现在不是使用Log,而是希望在主布局上显示相同的信息,但是LocationChanged事件在不同的类中,所以我无法访问布局。

public class mylocationlistener implements LocationListener
{

@Override
public void onLocationChanged(Location location)
{
    if (location != null)
    {
        Log.v("kjdv", location.getLatitude() + ", " + location.getLongitude());
        //I would like to set a textview here, but don't have access to the object
    }
}

此类在此处创建:

public class gps extends ListActivity implements View.OnClickListener
{

@Override
public void onCreate(Bundle icicle)
{
    super.onCreate(icicle);
    setContentView(R.layout.main);

    SetupLocationListener();
}

public void SetupLocationListener()
{
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    LocationListener ll = new mylocationlistener(this);
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}

那么,如何在myLocationListener类中设置onLocationChanged事件中的文本?

谢谢!

1 个答案:

答案 0 :(得分:1)

我们有两个选择。

一个就像MisterSquonk所说的那样。将Location侦听器保持为内部类,另一个将textView的对象传递给mylocationlistener的构造函数。别忘了在第二步中处理null子句。