0

期間我做過好幾個片段,但他們都延長現有的一些片段,現在是一個非常/骯髒的測試在那裏我只是設置列表片段和其適配器,但我想擺脫這正在發生的煩惱,並想知道什麼是最好的方式。手柄片段旋轉

這裏是我的我的FragmentActivity的的onCreate:

@Override 
    protected void onCreate(Bundle savedInstances) { 
    super.onCreate(savedInstances); 
    mListFrag = new ListFragment(); 
    getSupportFragmentManager().beginTransaction().add(android.R.id.content, mListFrag).commit(); 
    getSupportLoaderManager().initLoader(13, null, this).forceLoad(); 
    } 

簡單的東西,實例化一個新ListFragment,將其添加爲我活動的主要框架,並開始我的光標裝載機。

光標裝載機,當它這樣做:

@Override 
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { 

    if (mAdapter == null) { 
     mAdapter = getCallLogCursorAdapter(cursor); 
     mListFrag.setListAdapter(mAdapter); 
    } else { 
     Cursor oldCursor = mAdapter.swapCursor(cursor); 
     if (oldCursor != null) 
     oldCursor.close(); 
    } 
    } 

再次,簡單的東西,如果有必要創建一個適配器,如果不是我只是換了CURSO。

所有這一切工作正常,在第一次運行,但是當我旋轉設備,我得到了旋轉列表,以及對我的看法中間的進度條。看起來好像有兩個片段在另一個之上。我試着讓mListFrag.setRetainInstance(true);它不會顯示進度條,但是仍然有兩個片段在另一個之上,一個接收觸摸滾動瀏覽列表,另一個保持靜態。

我沒有覆蓋任何其他活動onSomething()回調。

我沒有打擾做太多複雜的方式,因爲我正在測試的應用程序中的數據端,這只是以快速查看是否數據庫/裝載機/內容提供商都在正常工作。 UI甚至沒有。

任何想法??

編輯:

我已經看到了不同的問題,以使用替換而不是增加對片段和它種工作,但不是真的。它解決了片段本身的所有問題,但是當我點擊回到前一個活動時,猜測?不確定的進度條就在與這些列表片段無關的活動的中間。

想法?也許我應該將這個片段粘貼到佈局xml中,但是因爲這是測試,我正在避免爲它們創建資源。

回答

0

再次,我對有點兒無用後社區抱歉。

前一活動(一說是回棧上)也採用ListFragment,我沒有注意到。所以之前的活動是做.add並複製這些片段。 使用

getSupportFragmentManager().beginTransaction().replace(android.R.id.content, mListFrag).commit(); 

跨越ALL活動解決了這個問題。

0

是不是更好的初始化加載器ListFragment? 例子:

public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    adapter = new MyCursorAdapter(getActivity(), null); 
    setListAdapter(adapter); 
    getLoaderManager().initLoader(0, null, this); 
} 
+0

我真的想在不擴展的情況下使用ListFragment。而我沒有看到連接。問題不在於適配器加載與否。問題是片段停留在android.R.id之上。內容事件在您離開持有它的活動之後。 – Budius