Tengo una preferencia personalizada con una imagen y dos textos y necesito cambiar la imagen mediante programación.Cómo administrar el diseño de preferencias personalizadas
Puedo obtener la vista de preferencias personalizadas y encontrar el ImageView en el diseño usando findViewById, pero si trato de cambiar la imagen, esto no funciona.
¿Me equivoco?
preferencia de presentación de
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageforfacebook"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="5dip"
android:src="@drawable/icon" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fadingEdge="horizontal"
android:singleLine="true"
android:text="titolo"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="18sp" />
<TextView
android:id="@+android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@android:id/title"
android:layout_below="@android:id/title"
android:maxLines="2"
android:text="descrizione"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>
CÓDIGO para cambiar el contenido IMAGEVIEW
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
View v = (View) prefs_facebookimage.getView(null, null);
ImageView img = (ImageView) v.findViewById(R.id.imageforfacebook);
Uri uri = Uri.parse(path);
img.setImageURI(uri);
No puedo usar la solución dibujable, ya que la imagen se seleccionará desde la cámara o tarjeta SD y puede cambiar en cualquier momento que el usuario lo desee. El código resuelve la preferencia, también he intentado cambiar algo de texto en mi diseño personalizado y después de llamar a setText ("newText"); durante la depuración, TextView tiene el nuevo texto, pero una vez que termina, regresa como original. – Giuseppe