这更像是一个设计问题。
所以我有一个底部导航Activity(有多个片段)。其中一个片段(默认加载的片段)具有textview,它将显示用户的位置信息。
当活动开始时,它会执行googleApiClient连接并向用户请求位置权限。当用户接受并完成所有这些操作时,片段被加载并且文本视图显示“未知位置”。这都是预期的。
现在获取位置时(在用户接受之后),将这些信息传递给片段并告诉textview更新的正确方法是什么?
我可以进行轮询(意味着如果在处理程序计时器中它不是null,则继续检查位置)但我觉得这不是正确的方法。
任何关于如何做到这一点的提示都将不胜感激
感谢。
答案 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);
}
}
};