活动如何告诉其片段位置可用,以便更新内容

时间:2017-06-05 05:42:02

标签: android android-fragments location

这更像是一个设计问题。

所以我有一个底部导航Activity(有多个片段)。其中一个片段(默认加载的片段)具有textview,它将显示用户的位置信息。

当活动开始时,它会执行googleApiClient连接并向用户请求位置权限。当用户接受并完成所有这些操作时,片段被加载并且文本视图显示“未知位置”。这都是预期的。

现在获取位置时(在用户接受之后),将这些信息传递给片段并告诉textview更新的正确方法是什么?

我可以进行轮询(意味着如果在处理程序计时器中它不是null,则继续检查位置)但我觉得这不是正确的方法。

任何关于如何做到这一点的提示都将不胜感激

感谢。

1 个答案:

答案 0 :(得分:0)

只需在片段中定义适当的方法,例如

public class FragmentA extends Fragment{

    public void changeLocationField(Location location){

    }
}

然后在活动中,从片段

调用您的方法
private LocationListener mListener = new LocationListener() {
    @Override
    public void onLocationChanged(Location location) {
        FragmentA fragmentA = (FragmentA)
                getSupportFragmentManager().findFragmentById(R.id.a_fragment);

        if (fragmentA != null) {
            fragmentA.changeLocationField(location);
        }
    }
};