在 ListView 中使用两个图像 Android
Using two images in ListView Android
我正在尝试使用 ArrayList 将两张图片放入 listView 中,但是当我 运行 项目时,只出现一张图片(卡车一张),但 星号一张没有出现。 Android Studio 没有向我显示任何错误。
有人可以看看我的代码并指出我,我做错了什么?
ListaDistribuidoresActivity.java
package com.pedido.meu.telas_meu_pedido;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class ListaDistribuidoresActivity extends AppCompatActivity {
ItemAdapter adapter;
ArrayList<Integer> idImages;
ArrayList<String> nameList;
ArrayList<Integer> starImage;
int ids[]={R.mipmap.ic_distribuidor};
String names[]={"DISTRIBUIDOR"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_distribuidores);
ListView listViewDistribuidores = findViewById(R.id.txtListViewDistribuidores);
idImages = new ArrayList<>();
idImages = getList();
starImage = new ArrayList<>();
starImage = getListStar();
nameList = new ArrayList<>();
nameList = getNameList();
ItemAdapter adapter = new ItemAdapter(ListaDistribuidoresActivity.this, idImages,nameList, starImage);
listViewDistribuidores.setAdapter(adapter);
listViewDistribuidores.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Toast.makeText(ListaDistribuidoresActivity.this, "Distribuidor " + nameList.get(position) + "selecionado", Toast.LENGTH_SHORT).show();
}
});
}
private ArrayList<Integer> getListStar()
{
starImage = new ArrayList<>();
starImage.add(R.mipmap.ic_star_round);
return starImage;
}
private ArrayList<String> getNameList()
{
nameList = new ArrayList<>();
nameList.add("DISTRIBUIDOR 1");
nameList.add("DISTRIBUIDOR 2");
nameList.add("DISTRIBUIDOR 3");
nameList.add("DISTRIBUIDOR 4");
return nameList;
}
private ArrayList<Integer> getList()
{
idImages = new ArrayList<>();
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
return idImages;
}
}
ItemAdapter.java
package com.pedido.meu.telas_meu_pedido;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter
{
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar)
{
this.context = context;
this.listaId = listaId;
this.listaNome=listaNome;
this.listaStar=listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList)
{
this.context=listaProdutosActivity;
this.listaId=idImages;
this.listaNome=nameList;
}
@Override
public int getCount()
{
return listaNome.size();
}
@Override
public Object getItem(int position)
{
return listaNome.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
}
ImageView img = convertView.findViewById(R.id.imgListItemProduto);
TextView tv = convertView.findViewById(R.id.txtListItemProduto);
img.setImageResource(listaId.get(position));
tv.setText(listaNome.get(position));
return convertView;
}
}
Imagem.java
package com.pedido.meu.telas_meu_pedido;
public class Imagem
{
private int imageId;
private String imageName;
public int getImageId() {
return imageId;
}
public void setImageId(int imageId) {
this.imageId = imageId;
}
public String getImageName() {
return imageName;
}
public void setImageName(String imageName) {
this.imageName = imageName;
}
}
activity_lista_distribuidores.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.pedido.meu.telas_meu_pedido.ListaDistribuidoresActivity"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_distribuidor"
android:layout_gravity="center"
android:layout_marginTop="30dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txtTitleListaDistribuidores"
android:gravity="center"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:textSize="14pt"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
/>
<ListView
android:id="@+id/txtListViewDistribuidores"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
list_item_distribuidor.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:id="@+id/imgListaProdutos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_acai"
android:layout_marginLeft="8dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="@+id/imgListaProdutos"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
使用这个库:
implementation 'com.squareup.picasso:picasso:2.5.2'
并在适配器中执行此操作:
ImageView img = convertView.findViewById(R.id.imgListItemProduto);
Picasso.with(context).load(listaId.get(position)).into(img);
用以下
更新您的 list_item_distribuidor.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:id="@+id/imgListaProdutos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_acai"
android:layout_marginLeft="8dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="@+id/imgListaProdutos"
/>
<ImageView android:id="@+id/imgListaStar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
和你的 ItemAdapter.java class 与以下
package com.pedido.meu.telas_meu_pedido;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter
{
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar)
{
this.context = context;
this.listaId = listaId;
this.listaNome=listaNome;
this.listaStar=listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList)
{
this.context=listaProdutosActivity;
this.listaId=idImages;
this.listaNome=nameList;
}
@Override
public int getCount()
{
return listaNome.size();
}
@Override
public Object getItem(int position)
{
return listaNome.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
}
ImageView img = convertView.findViewById(R.id.imgListaProdutos);
TextView tv = convertView.findViewById(R.id.txtListItemProduto);
ImageView imgStar = convertView.findViewById(R.id.imgListaStar);
img.setImageResource(listaId.get(position));
tv.setText(listaNome.get(position));
imgStar.setImageResource(listaStar.get(0));
return convertView;
}
}
你没有设置图像,
让我知道它是否有效
您的 XML 和适配器有问题。首先,将 id 添加到第二张图片的 XML 中,我想是星图。
list_item_distribuidor.xml
<ImageView
android:id="@+id/imgListStars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
然后在 ItemAdapter.java 中用它的 ID 初始化它并从 list.Just 的方式设置它的值你正在处理你的其他(卡车)图像。
ImageView imgStar = convertView.findViewById(R.id.imgListStars);
imgStar.setImageResource(listaStar.get(position));
完整功能代码
ListaDistribuidoresActivity.java
package com.pedido.meu.telas_meu_pedido.controller;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import com.pedido.meu.telas_meu_pedido.R;
import com.pedido.meu.telas_meu_pedido.adapter.ItemAdapter;
import java.util.ArrayList;
public class ListaDistribuidoresActivity extends AppCompatActivity {
ItemAdapter adapter;
ArrayList<Integer> idImages;
ArrayList<String> nameList;
ArrayList<Integer> starImage;
int ids[]={R.mipmap.ic_distribuidor};
String names[]={"DISTRIBUIDOR"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_distribuidores);
ListView listViewDistribuidores = findViewById(R.id.txtListViewDistribuidores);
Spinner spinner = findViewById(R.id.spinnerCategoria);
ArrayAdapter<CharSequence> adapterSpinner = ArrayAdapter.createFromResource(ListaDistribuidoresActivity.this, R.array.category_array, android.R.layout.simple_spinner_dropdown_item);
adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterSpinner);
idImages = new ArrayList<>();
idImages = getList();
starImage = new ArrayList<>();
starImage = getListStar();
nameList = new ArrayList<>();
nameList = getNameList();
ItemAdapter adapter = new ItemAdapter(ListaDistribuidoresActivity.this, idImages,nameList, starImage);
listViewDistribuidores.setAdapter(adapter);
listViewDistribuidores.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Toast.makeText(ListaDistribuidoresActivity.this, "Distribuidor " + nameList.get(position) + "selecionado", Toast.LENGTH_SHORT).show();
}
});
}
private ArrayList<Integer> getListStar()
{
starImage = new ArrayList<>();
starImage.add(R.mipmap.ic_star_round);
return starImage;
}
private ArrayList<String> getNameList()
{
nameList = new ArrayList<>();
nameList.add("DISTRIBUIDOR 1");
nameList.add("DISTRIBUIDOR 2");
nameList.add("DISTRIBUIDOR 3");
nameList.add("DISTRIBUIDOR 4");
return nameList;
}
private ArrayList<Integer> getList()
{
idImages = new ArrayList<>();
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
return idImages;
}
}
Imagem.java
package com.pedido.meu.telas_meu_pedido.modelo;
public class Imagem
{
private int imageId;
private String imageName;
public int getImageId() {
return imageId;
}
public void setImageId(int imageId) {
this.imageId = imageId;
}
public String getImageName() {
return imageName;
}
public void setImageName(String imageName) {
this.imageName = imageName;
}
}
ItemAdapter.java
package com.pedido.meu.telas_meu_pedido.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.pedido.meu.telas_meu_pedido.controller.ListaProdutosActivity;
import com.pedido.meu.telas_meu_pedido.R;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter {
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar) {
this.context = context;
this.listaId = listaId;
this.listaNome = listaNome;
this.listaStar = listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList) {
this.context = listaProdutosActivity;
this.listaId = idImages;
this.listaNome = nameList;
}
@Override
public int getCount() {
return listaNome.size();
}
@Override
public Object getItem(int position) {
return listaNome.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int view = 0;
if (convertView == null)
{
if(view == R.layout.list_item_produtos)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
ImageView imgProducts = convertView.findViewById(R.id.imgListItemProduto);
TextView textViewProducts = convertView.findViewById(R.id.txtListItemProduto);
imgProducts.setImageResource(listaId.get(position));
textViewProducts.setText(listaNome.get(position));
}
else
{
convertView = View.inflate(context, R.layout.list_item_distribuidor, null);
ImageView imgDistributor = convertView.findViewById(R.id.imgStarDistributor);
TextView textDistribuidor = convertView.findViewById(R.id.txtDistribuidor);
imgDistributor.setImageResource(listaStar.get(0));
textDistribuidor.setText(listaNome.get(position));
}
}
return convertView;
}
}
activity_lista_distribuidores.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.pedido.meu.telas_meu_pedido.controller.ListaDistribuidoresActivity"
>
<ImageView
android:id="@+id/imgTitleListDistributor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_distribuidor"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:contentDescription="@string/txtTitleListaDistribuidores"
/>
<TextView
android:id="@+id/txtTitleDistributor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txtTitleListaDistribuidores"
android:gravity="center"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:textSize="14pt"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
/>
<Spinner
android:id="@+id/spinnerCategoria"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="15dp"
/>
<ListView
android:id="@+id/txtListViewDistribuidores"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
list_item_distribuidor.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ImageView
android:id="@+id/imgListaDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_distribuidor"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginStart="122dp"
android:layout_marginLeft="122dp"
android:layout_marginRight="-150dp"
android:textStyle="bold"/>
<ImageView
android:id="@+id/imgStarDistributor"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@mipmap/ic_star_round"
android:layout_marginLeft="295dp"
android:layout_marginTop="35dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4.2"
android:layout_marginLeft="320dp"
android:layout_marginTop="35dp"
android:textStyle="bold"
/>
</RelativeLayout>
我正在尝试使用 ArrayList 将两张图片放入 listView 中,但是当我 运行 项目时,只出现一张图片(卡车一张),但 星号一张没有出现。 Android Studio 没有向我显示任何错误。
有人可以看看我的代码并指出我,我做错了什么?
ListaDistribuidoresActivity.java
package com.pedido.meu.telas_meu_pedido;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class ListaDistribuidoresActivity extends AppCompatActivity {
ItemAdapter adapter;
ArrayList<Integer> idImages;
ArrayList<String> nameList;
ArrayList<Integer> starImage;
int ids[]={R.mipmap.ic_distribuidor};
String names[]={"DISTRIBUIDOR"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_distribuidores);
ListView listViewDistribuidores = findViewById(R.id.txtListViewDistribuidores);
idImages = new ArrayList<>();
idImages = getList();
starImage = new ArrayList<>();
starImage = getListStar();
nameList = new ArrayList<>();
nameList = getNameList();
ItemAdapter adapter = new ItemAdapter(ListaDistribuidoresActivity.this, idImages,nameList, starImage);
listViewDistribuidores.setAdapter(adapter);
listViewDistribuidores.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Toast.makeText(ListaDistribuidoresActivity.this, "Distribuidor " + nameList.get(position) + "selecionado", Toast.LENGTH_SHORT).show();
}
});
}
private ArrayList<Integer> getListStar()
{
starImage = new ArrayList<>();
starImage.add(R.mipmap.ic_star_round);
return starImage;
}
private ArrayList<String> getNameList()
{
nameList = new ArrayList<>();
nameList.add("DISTRIBUIDOR 1");
nameList.add("DISTRIBUIDOR 2");
nameList.add("DISTRIBUIDOR 3");
nameList.add("DISTRIBUIDOR 4");
return nameList;
}
private ArrayList<Integer> getList()
{
idImages = new ArrayList<>();
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
return idImages;
}
}
ItemAdapter.java
package com.pedido.meu.telas_meu_pedido;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter
{
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar)
{
this.context = context;
this.listaId = listaId;
this.listaNome=listaNome;
this.listaStar=listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList)
{
this.context=listaProdutosActivity;
this.listaId=idImages;
this.listaNome=nameList;
}
@Override
public int getCount()
{
return listaNome.size();
}
@Override
public Object getItem(int position)
{
return listaNome.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
}
ImageView img = convertView.findViewById(R.id.imgListItemProduto);
TextView tv = convertView.findViewById(R.id.txtListItemProduto);
img.setImageResource(listaId.get(position));
tv.setText(listaNome.get(position));
return convertView;
}
}
Imagem.java
package com.pedido.meu.telas_meu_pedido;
public class Imagem
{
private int imageId;
private String imageName;
public int getImageId() {
return imageId;
}
public void setImageId(int imageId) {
this.imageId = imageId;
}
public String getImageName() {
return imageName;
}
public void setImageName(String imageName) {
this.imageName = imageName;
}
}
activity_lista_distribuidores.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.pedido.meu.telas_meu_pedido.ListaDistribuidoresActivity"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_distribuidor"
android:layout_gravity="center"
android:layout_marginTop="30dp"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txtTitleListaDistribuidores"
android:gravity="center"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:textSize="14pt"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
/>
<ListView
android:id="@+id/txtListViewDistribuidores"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
list_item_distribuidor.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:id="@+id/imgListaProdutos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_acai"
android:layout_marginLeft="8dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="@+id/imgListaProdutos"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
使用这个库:
implementation 'com.squareup.picasso:picasso:2.5.2'
并在适配器中执行此操作:
ImageView img = convertView.findViewById(R.id.imgListItemProduto);
Picasso.with(context).load(listaId.get(position)).into(img);
用以下
更新您的 list_item_distribuidor.xml<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:id="@+id/imgListaProdutos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_acai"
android:layout_marginLeft="8dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="@+id/imgListaProdutos"
/>
<ImageView android:id="@+id/imgListaStar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
和你的 ItemAdapter.java class 与以下
package com.pedido.meu.telas_meu_pedido;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter
{
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar)
{
this.context = context;
this.listaId = listaId;
this.listaNome=listaNome;
this.listaStar=listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList)
{
this.context=listaProdutosActivity;
this.listaId=idImages;
this.listaNome=nameList;
}
@Override
public int getCount()
{
return listaNome.size();
}
@Override
public Object getItem(int position)
{
return listaNome.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
}
ImageView img = convertView.findViewById(R.id.imgListaProdutos);
TextView tv = convertView.findViewById(R.id.txtListItemProduto);
ImageView imgStar = convertView.findViewById(R.id.imgListaStar);
img.setImageResource(listaId.get(position));
tv.setText(listaNome.get(position));
imgStar.setImageResource(listaStar.get(0));
return convertView;
}
}
你没有设置图像, 让我知道它是否有效
您的 XML 和适配器有问题。首先,将 id 添加到第二张图片的 XML 中,我想是星图。
list_item_distribuidor.xml
<ImageView
android:id="@+id/imgListStars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
然后在 ItemAdapter.java 中用它的 ID 初始化它并从 list.Just 的方式设置它的值你正在处理你的其他(卡车)图像。
ImageView imgStar = convertView.findViewById(R.id.imgListStars);
imgStar.setImageResource(listaStar.get(position));
完整功能代码
ListaDistribuidoresActivity.java
package com.pedido.meu.telas_meu_pedido.controller;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import com.pedido.meu.telas_meu_pedido.R;
import com.pedido.meu.telas_meu_pedido.adapter.ItemAdapter;
import java.util.ArrayList;
public class ListaDistribuidoresActivity extends AppCompatActivity {
ItemAdapter adapter;
ArrayList<Integer> idImages;
ArrayList<String> nameList;
ArrayList<Integer> starImage;
int ids[]={R.mipmap.ic_distribuidor};
String names[]={"DISTRIBUIDOR"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_distribuidores);
ListView listViewDistribuidores = findViewById(R.id.txtListViewDistribuidores);
Spinner spinner = findViewById(R.id.spinnerCategoria);
ArrayAdapter<CharSequence> adapterSpinner = ArrayAdapter.createFromResource(ListaDistribuidoresActivity.this, R.array.category_array, android.R.layout.simple_spinner_dropdown_item);
adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterSpinner);
idImages = new ArrayList<>();
idImages = getList();
starImage = new ArrayList<>();
starImage = getListStar();
nameList = new ArrayList<>();
nameList = getNameList();
ItemAdapter adapter = new ItemAdapter(ListaDistribuidoresActivity.this, idImages,nameList, starImage);
listViewDistribuidores.setAdapter(adapter);
listViewDistribuidores.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Toast.makeText(ListaDistribuidoresActivity.this, "Distribuidor " + nameList.get(position) + "selecionado", Toast.LENGTH_SHORT).show();
}
});
}
private ArrayList<Integer> getListStar()
{
starImage = new ArrayList<>();
starImage.add(R.mipmap.ic_star_round);
return starImage;
}
private ArrayList<String> getNameList()
{
nameList = new ArrayList<>();
nameList.add("DISTRIBUIDOR 1");
nameList.add("DISTRIBUIDOR 2");
nameList.add("DISTRIBUIDOR 3");
nameList.add("DISTRIBUIDOR 4");
return nameList;
}
private ArrayList<Integer> getList()
{
idImages = new ArrayList<>();
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
return idImages;
}
}
Imagem.java
package com.pedido.meu.telas_meu_pedido.modelo;
public class Imagem
{
private int imageId;
private String imageName;
public int getImageId() {
return imageId;
}
public void setImageId(int imageId) {
this.imageId = imageId;
}
public String getImageName() {
return imageName;
}
public void setImageName(String imageName) {
this.imageName = imageName;
}
}
ItemAdapter.java
package com.pedido.meu.telas_meu_pedido.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.pedido.meu.telas_meu_pedido.controller.ListaProdutosActivity;
import com.pedido.meu.telas_meu_pedido.R;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter {
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar) {
this.context = context;
this.listaId = listaId;
this.listaNome = listaNome;
this.listaStar = listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList) {
this.context = listaProdutosActivity;
this.listaId = idImages;
this.listaNome = nameList;
}
@Override
public int getCount() {
return listaNome.size();
}
@Override
public Object getItem(int position) {
return listaNome.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int view = 0;
if (convertView == null)
{
if(view == R.layout.list_item_produtos)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
ImageView imgProducts = convertView.findViewById(R.id.imgListItemProduto);
TextView textViewProducts = convertView.findViewById(R.id.txtListItemProduto);
imgProducts.setImageResource(listaId.get(position));
textViewProducts.setText(listaNome.get(position));
}
else
{
convertView = View.inflate(context, R.layout.list_item_distribuidor, null);
ImageView imgDistributor = convertView.findViewById(R.id.imgStarDistributor);
TextView textDistribuidor = convertView.findViewById(R.id.txtDistribuidor);
imgDistributor.setImageResource(listaStar.get(0));
textDistribuidor.setText(listaNome.get(position));
}
}
return convertView;
}
}
activity_lista_distribuidores.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.pedido.meu.telas_meu_pedido.controller.ListaDistribuidoresActivity"
>
<ImageView
android:id="@+id/imgTitleListDistributor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_distribuidor"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:contentDescription="@string/txtTitleListaDistribuidores"
/>
<TextView
android:id="@+id/txtTitleDistributor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txtTitleListaDistribuidores"
android:gravity="center"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:textSize="14pt"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
/>
<Spinner
android:id="@+id/spinnerCategoria"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="15dp"
/>
<ListView
android:id="@+id/txtListViewDistribuidores"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
list_item_distribuidor.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ImageView
android:id="@+id/imgListaDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_distribuidor"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginStart="122dp"
android:layout_marginLeft="122dp"
android:layout_marginRight="-150dp"
android:textStyle="bold"/>
<ImageView
android:id="@+id/imgStarDistributor"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@mipmap/ic_star_round"
android:layout_marginLeft="295dp"
android:layout_marginTop="35dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4.2"
android:layout_marginLeft="320dp"
android:layout_marginTop="35dp"
android:textStyle="bold"
/>
</RelativeLayout>