我无法在imageview上显示图像,我检查了日志,imageview为null。 id是正确的。如果我注释掉Picasso指令,列表视图会正确显示。 (我知道如果我使用viewHolder,它可以更高效,但它不是我现在正在寻找的。)
IncidenciaDetallada.java
public class IncidenciaDetallada extends AppCompatActivity {
private String categoria, path_imagen, imagen_URL;
private ArrayList<ItemListViewDetallado> datos = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_incidencia_detallada);
getWindow().getDecorView().setBackgroundColor(Color.WHITE);
ListView listview_incidencia_detallada = (ListView) findViewById(R.id.listview_incidencia_detallada);
categoria = getIntent().getExtras().getString("categoria");
path_imagen = getIntent().getExtras().getString("path_imagen");
imagen_URL = "http://192.168.1.131/" + path_imagen;
ItemListViewDetallado item = new ItemListViewDetallado(categoria);
datos.add(item);
AdaptadorIncidencias adapter = new AdaptadorIncidencias(IncidenciaDetallada.this, datos);
listview_incidencia_detallada.setAdapter(adapter);
}
private class AdaptadorIncidencias extends ArrayAdapter<ItemListViewDetallado> {
public AdaptadorIncidencias(Context context, ArrayList<ItemListViewDetallado> datos) {
super(context, R.layout.list_item_incidencia_detallada, datos);
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(getContext());
View item = inflater.inflate(R.layout.list_item_incidencia_detallada, null);
TextView tv_categoria = (TextView)item.findViewById(R.id.tv_categoria);
tv_categoria.setText(categoria);
ImageView imagen_detalles = (ImageView) findViewById(R.id.imagen_detalles);
Picasso.with(getApplicationContext()).load(imagen_URL).into(imagen_detalles);
return(item);
}
}
}
list_item_incidencia_detallada.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/style_et_tv"
android:padding="10dp"
android:textSize="18sp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/tv_categoria"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="41dp" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imagen_detalles"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/imagen_detalles"
android:layout_below="@+id/tv_categoria"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="107dp" />
</RelativeLayout>
答案 0 :(得分:0)
忘记在适当的对象上调用findViewById
。在您的getView
适配器方法中,您应该致电:
ImageView imagen_detalles = (ImageView) item.findViewById(R.id.imagen_detalles);
instaead of:
ImageView imagen_detalles = (ImageView) findViewById(R.id.imagen_detalles);