Acceder

Ver la Versión Completa : [ SOLUCIONADO ] Error al asignar una imagen a un control ImageView en tiempo de ejecución


c2alvaro
09/09/15, 22:57:20
Saludos compañeros, me puede ayudar con esto, intento asignar una imagen a un control ImageView en tiempo de ejecucion pero me da un error de "Unfortunately" este es parte del codigo

public View getView(int position, View convertView, ViewGroup parent) {
View item =convertView;
if (item==null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
item = inflater.inflate(R.layout.ctas_layout, null);
}
TextView xtipo = (TextView)item.findViewById(R.id.txtLTipo);
xtipo.setText(datosCtas[position].getC_tipo());

TextView xcuenta = (TextView)item.findViewById(R.id.txtLCuenta);
xcuenta.setText(datosCtas[position].getC_numero());

TextView xsaldo = (TextView)item.findViewById(R.id.txtLSaldo);
xsaldo.setText(datosCtas[position].getC_saldo());

ImageView xlogo=(ImageView)findViewById(R.id.imgLLogo);
xlogo.setImageResource(R.drawable.logo_mastercard) ;

return(item);
}
este es una muesta del log

09-09 16:49:06.988 21357-21357/com.example.alvarolapto.soafiandroid E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.alvarolapto.soafiandroid, PID: 21357
java.lang.NullPointerException
at com.example.alvarolapto.soafiandroid.Main2Activity $AdaptadorCuentas.getView(Main2Activity.java:158)
at android.widget.AbsListView.obtainView(AbsListView. java:2255)
at android.widget.ListView.measureHeightOfChildren(Li stView.java:1263)
at android.widget.ListView.onMeasure(ListView.java:11 75)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(Vie wGroup.java:5125)

El control de la imagen esta en un layout.xml (tiene un control de imagen y 3 TextView) este layout lo uso para mostrarlo en un ListView con un ArrayAdapter personalizado los datos de los TextView los obtengo de una clase, todo funciona bien pero si quiero que me muestre la imagen me da ese error de NullPointerException que podra ser? gracias por su ayuda

kriogeN
10/09/15, 09:27:37
Esto:

ImageView xlogo=(ImageView)findViewById(R.id.imgLLogo);

¿No debería ser así?:

ImageView xlogo=(ImageView)item.findViewById(R.id.imgLLogo);

c2alvaro
10/09/15, 14:52:48
Esto:

ImageView xlogo=(ImageView)findViewById(R.id.imgLLogo);

¿No debería ser así?:

ImageView xlogo=(ImageView)item.findViewById(R.id.imgLLogo);

Vaya que tonto soy...!, muchas gracias amigo kriogen tienes toda la razon, anoche la cabeza ya no daba para mas y lo de la imagen fue lo ultimo que hice ayer tarde je je je je y no me di cuenta de ese pequeño detalle, muchas gracias por tu ayuda.. :silbando::silbando:

Dexafree
10/09/15, 15:26:40
Marcamos como solucionado :ok:

kriogeN
10/09/15, 16:06:17
Eso si hicieses una clase por fichero no te pasaría, porque te daría error de compilación, pero tendrás el Adapter dentro de la Activity, y por eso compila perfectamente.

No eres sólo tu, le pasa a casi todo el mundo, parece que se paga por cada fichero que tiene tu código fuente.

Haz un fichero por clase y así si luego tienes que reutilizar es más sencillo. Además de ahorrarte esos problemas.

c2alvaro
11/09/15, 15:37:20
Eso si hicieses una clase por fichero no te pasaría, porque te daría error de compilación, pero tendrás el Adapter dentro de la Activity, y por eso compila perfectamente.

No eres sólo tu, le pasa a casi todo el mundo, parece que se paga por cada fichero que tiene tu código fuente.

Haz un fichero por clase y así si luego tienes que reutilizar es más sencillo. Además de ahorrarte esos problemas.

Gracias amigo Kriogen