2017-06-05 60 views
-2

這更像是一個設計問題。活動如何告知其碎片位置可用,以便更新內容

所以我有一個底部導航活動(它有多個片段)。其中一個片段(默認加載的片段)具有textview,它將顯示用戶的位置信息。

當活動開始時,它會執行googleApiClient連接並向用戶請求位置權限。當用戶接受並完成所有這些操作時,片段將被加載,並且textview將顯示「未知位置」。這是所有的預期。

現在當獲取位置(在用戶接受之後),將該信息傳遞給片段並告訴textview更新的正確方法是什麼?

我可以做投票(意思是不斷檢查位置,如果它不是空的處理程序計時器),但我覺得這不是正確的方法。

對這樣的事情如何做任何提示,將不勝感激

感謝。

+1

通過接口類做 –

+0

您可以創建自定義監聽器通過接口。如果位置已收集,請收聽,然後在相關片段中觸發它以更改文本。 – tahsinRupam

+0

這是活動的片段溝通,可以找到[這裏](https://developer.android.com/training/basics/fragments/communicating.html#Deliver) – Blackkara

回答

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); 
     } 
    } 
};