2012-10-17 36 views
1

我想實現一個相當基本的用戶界面。與菜單中的片段進行通信並更新片段UI?

我有一個活動,並在其中一個片段,執行HTTP獲取並更新片段中的一些值。

這工作正常,現在我想有一個菜單來刷新這個 - 菜單包含在活動內。

我的問題是我不確定如何處理方法調用。基本上我發現當我從菜單處理程序更新它時,片段中的getActivity()返回null。

所以我有這段代碼在活動

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    try { 
     handler = new GetData(); 
    } catch (Exception e) { 
     Log.e("FFF", "Exception: " + Log.getStackTraceString(e)); 
    } 

} 

的GetData()是我的活動Java類

現在在我的onOptionsItemSelect事件,如果我使用handler從上面(使處理全球var)它工作,但getActivity()在片段中爲null。

使用下面的返回代碼中調用onOptionsItemSelected事件

GetData handler = (GetData) getFragmentManager().findFragmentById(R.layout.verticalwetherlayout); 

空的時候有沒有解釋這部分的教程?或者我只是做錯了什麼?

Chris

回答

0

我發現我的問題。

我正在使用片段的實際ID而不是活動中定義的片段實例的ID。

所以分片的ID爲R.layout.verticalwetherlayout

,但在活動片段的實際編號爲GetData1

<fragment 
     android:id="@+id/GetData1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     class="com.example.testapp1.GetData" /> 

克里斯