2014-01-20 143 views
-1

對不起,我的英語不會改變。標籤時,配置更改

我有一些活動。

佈局活性:

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/containerOfStandardFilters" /> 

     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/containerOfMoreFilters" /> 


    </LinearLayout> 

</ScrollView> 

在活動的代碼我動態填充兩個容器佈局。目前我只填寫containerOfStandardFilters

佈局我用於膨脹的containerOfStandardFilters含量:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:textSize="@dimen/textSizeOfFilterGroupTitle" 
     android:text="@string/titleOfSortingGroup" /> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfSortByDistanceCheckBox" 
     android:id="@+id/sortByDistanceCheckBox" /> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfSortByDiscountCheckBox" 
     android:id="@+id/sortByDiscountCheckBox" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/sizeBetweenFilterGroups" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:textSize="@dimen/textSizeOfFilterGroupTitle" 
     android:text="@string/titleOfPaymentMethodGroup"/> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfCashlessPaymentsCheckBox" 
     android:id="@+id/cashlessPaymentsCheckBox" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/sizeBetweenFilterGroups" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:textSize="@dimen/textSizeOfFilterGroupTitle" 
     android:text="@string/titleOfWorkingHoursGroup"/> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfWorksNowCheckBox" 
     android:id="@+id/worksNowCheckBox" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/sizeBetweenFilterGroups" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:textSize="@dimen/textSizeOfFilterGroupTitle" 
     android:text="@string/titleOfDiscountTypeGroup" /> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfBonusCheckBox" 
     android:id="@+id/bonusCheckBox" /> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfDiscountCheckBox" 
     android:id="@+id/discountCheckBox" /> 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="@dimen/textSizeOfSortingGroupItems" 
     android:text="@string/labelOfCashBackCheckBox" 
     android:id="@+id/cashBackCheckBox" /> 

</LinearLayout> 

但是,如果我改變當前語言(通過設置),並返回到濾光活性(從系統設置活動),那麼只有無編號的觀點將更新標籤。

我該如何解決我的問題?

+0

爲什麼 「-1」 ???? ????? –

+0

配置發生變化時,任何帶有id的值都會被保留。同時,您可以使用片段實現代碼並將其添加到xml中而不是幀佈局中 – vamsiampolu

回答

0

對不起,我的英語水平。

在最後,我決定這個問題如下。

我包裹每個View與一個FrameLayout具有相同屬性idtext屬性id並從每個這樣的View除去id

但是,真理,查找View代碼變得更加複雜。

layout,而不是使用:

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/labelOfCheckBox" 
    android:id="@+id/checkBox" /> 

我用:

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/checkBox" > 

    <CheckBox 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/labelOfCheckBox" /> 

</FrameLayout> 

和代碼找到包裹Views

public class MyActivity extends Activity { 
    public View findWrappedView(int id) { 
     ViewGroup container = (ViewGroup) findViewById(id); 
     return container.getChildAt(0); 
    } 
}