0

我有幾個佈局:的Android重用佈局包括問題

loading.xml 
reload.xml 
noresult.xml 

這些的LinearLayout和RelativeLayout的

我在其他佈局如下使用它們:

<include 
    android:id="@+id/loading" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    layout="@layout/loading" 
    android:visibility="gone" /> 

<include 
    android:id="@+id/reload" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    layout="@layout/reload" 
    android:visibility="gone" /> 

<include 
    android:id="@+id/noresult" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    layout="@layout/noresult" 
    android:visibility="gone" /> 

問題是當我創建了一個通用佈局,其中包括這些在幾個片段中使用它(lik e在一個viewpager例如)

當我點擊reload佈局的重載按鈕,在列表中。它用第一個數據重新載入另一個列表。

視圖ID有問題嗎?

我可以在不同的佈局中重複使用相同的include包含不同的包含id,但在include中包含相同的重載按鈕id,它是否可以創建id衝突? (這是同樣的問題,我認爲)

編輯1:

代碼用於添加片段:

getSherlockActivity().getSupportFragmentManager() 
             .beginTransaction() 
             .setCustomAnimations(R.anim.slide_in_bottom, R.anim.slide_out_top, R.anim.slide_in_top, R.anim.slide_out_bottom) 
             .add(R.id.fragment_a, fragmentClassA1) 
             .addToBackStack(TAG_A1) 
             .commit(); 

回答

0

你有佈局本身之前選擇組佈局:

findViewById(R.id.loading).findViewById(android.R.id.list); 
+1

這就是我正在做的。我甚至試圖讓組佈局可點擊,同樣的結果:/ – 2014-10-16 10:37:55

+0

好吧,我想我誤解了你。它是另一個片段的Lis​​tView,當你點擊一個時更新?你可以發佈代碼,通知更改到適配器以及將適配器設置到ListView的位置嗎? – Benoit 2014-10-16 13:32:11

+0

有兩個片段(a和b)添加到viewpager中,每個片段都有一個listview。如果我在片段(a)中選擇一個單元格,它會在if之上彈出一個片段(a1)。比方說,我在沒有互聯網連接的兩個根分支(a和b)中這樣做,它會爲每個根片段彈出一個包含視圖「重新加載」的片段(a1和b1)。現在我重新連接互聯網,然後點擊a1中的重新加載,它會在b1中調用onclick(),並用a1的數據更新b1 – 2014-10-16 14:46:34