Skocz do zawartości
Kubaz

ImageView w layoucie preferencji nie zmienia się

    Rekomendowane odpowiedzi

    Kubaz

    Witam stworzyłem PreferenceActivity, które ładuje wszystkie preferencje z R.xml.preferences i wyświetla je na liście R.layout.preference_list (prosty układ z jedynym elementem - listą).

     

    Jedna z używanych preferencji korzysta z określonego layoutu

        <EditTextPreference
            android:title="@string/auth_title"
            android:summary="@string/auth_summary"
            android:key="pass"
            android:defaultValue="1"
            android:layout="@layout/preference_auth"
            android:hint="Enter password"/>

    gdzie kluczowym dla niniejszego pytania fragmentem kodu jest 

    <ImageView
        android:id="@+id/iconSelected"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:paddingLeft="10dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_action_no" />

    Opisuje to ikonę po prawej stronie. Lewa strona to domyślna klikalna preferencja, która otwiera obszar EditText

     

    enter image description here

    Chcę teraz programatycznie zmienić źródło obrazka, który jest wyświetlony przy starcie tego Activity (tak naprawdę kiedy EditText pasuje do określonego stringa ale uprośćmy to maksymalnie)

     EditTextPreference editPref;
     ImageView icon;
    
                @Override
                protected void onCreate(Bundle savedInstanceState) 
                {
                    super.onCreate(savedInstanceState);
    
                    addPreferencesFromResource(R.xml.preferences);
                    setContentView(R.layout.preference_list);
    
                    editPref = (EditTextPreference) getPreferenceScreen().findPreference("pass");
    
                    icon = (ImageView)getLayoutInflater().inflate(editPref.getLayoutResource(), null).findViewById(R.id.iconSelected);
                    icon.setImageResource(R.drawable.ic_action_yes);
    
                }

    Kod jednak nie działą. Obraz pozostaje nienaruszony. Gdzie leży problem?

    Edytowane przez Kubaz

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    szykam

    Spróbuj

    icon = (ImageView)editPref.findViewById(R.id.iconSelected)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x