我有一个列表视图,显示对象ArrayList(类“ Doenca”),并且此警告出现在充气机中,我在类中使用ListView适配器。看到:
public class DoencaAdapter extends ArrayAdapter<Doenca> {
private final Context context;
private final ArrayList<Doenca> doencaArrayList;
public DoencaAdapter(Context context, ArrayList<Doenca> doencaArrayList) {
super(context, R.layout.linhas_dados_patologia_grupo, doencaArrayList);
this.context = context;
this.doencaArrayList = doencaArrayList;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View root = inflater.inflate(R.layout.linhas_dados_patologia_grupo, parent, false);
// Indicando quem é quem no layout XML
TextView nomeDoenca = root.findViewById(R.id.doencaNome);
TextView causaDoenca = root.findViewById(R.id.doencaCausa);
TextView efeitoDoenca = root.findViewById(R.id.doencaEfeito);
TextView cuidadoDoenca = root.findViewById(R.id.doencaCuidados);
TextView prevencaoDoenca = root.findViewById(R.id.doencaPrevencao);
TextView categoriaDoenca = root.findViewById(R.id.doencaCategoria);
TextView criadorDoenca = root.findViewById(R.id.doencaCriador);
ImageView doencaFoto = root.findViewById(R.id.doencaFoto);
// Atribuindo valores a cada doença adicionada pelo usuário
nomeDoenca.setText(doencaArrayList.get(position).getNome());
causaDoenca.setText(doencaArrayList.get(position).getCausa());
efeitoDoenca.setText(doencaArrayList.get(position).getEfeito());
cuidadoDoenca.setText(doencaArrayList.get(position).getCuidados());
prevencaoDoenca.setText(doencaArrayList.get(position).getPrevencao());
categoriaDoenca.setText(doencaArrayList.get(position).getCategoria());
criadorDoenca.setText(FirebaseAuth.getInstance().getCurrentUser().getDisplayName());
switch (doencaArrayList.get(position).getCategoria().toString()){
case "Inflamação":
doencaFoto.setImageResource(R.mipmap.ic_doenca1);
// listView.setDivider(new ColorDrawable(context.getResources().getColor(R.color.preto1)));
break;
case "Infecção":
doencaFoto.setImageResource(R.mipmap.ic_doenca2);
// listView.setDivider(new ColorDrawable(context.getResources().getColor(R.color.amarelo2)));
break;
case "Zoonose":
doencaFoto.setImageResource(R.mipmap.ic_doenca3);
// listView.setDivider(new ColorDrawable(context.getResources().getColor(R.color.vermelho3)));
break;
case "Viral":
doencaFoto.setImageResource(R.mipmap.ic_doenca4);
// listView.setDivider(new ColorDrawable(context.getResources().getColor(R.color.azul4)));
break;
case "Outros":
doencaFoto.setImageResource(R.mipmap.ic_doenca5);
break;
default:
doencaFoto.setImageResource(R.mipmap.ic_doenca5);
// listView.setDivider(new ColorDrawable(context.getResources().getColor(R.color.laranja5)));
break;
}
return root;
}
}
我看不到任何错误会导致此警告。但是,我的列表视图中的各项正常显示,只有一项没有显示,但必须是数据库推送数据。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这是您要初始化视图的方式,因为convertView可以在视图回收后重新使用。
public class DoencaAdapter extends ArrayAdapter<Doenca> {
private final Context context;
private final ArrayList<Doenca> doencaArrayList;
public DoencaAdapter(Context context, ArrayList<Doenca> doencaArrayList) {
super(context, R.layout.linhas_dados_patologia_grupo, doencaArrayList);
this.context = context;
this.doencaArrayList = doencaArrayList;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view;
if (convertView != null) {
view = convertView;
} else {
view = LayoutInflater.from(context).inflate(R.layout.linhas_dados_patologia_grupo, parent, false);
}
...
return view;
}
}
另外,您可能要考虑使用RecyclerView。