Boa tarde,
Pessoal estou com problemas no meu código, não consigo pensar numa maneira de passar esse vetor de caracteres, percebi que meu código ao inves de adicionar ao array todos os valores ele da um new e so salva o último, ja tentei de todas as formas que imaginei mas o resultado é sempre o ultimo valor recebido no array… Alguma sugestao?
@ApplicationScoped
@Named(value="chamadoBean")
public class ChamadoBean implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private CategoriaPU categoriaPU;
private Categoria categoria;
private List<SelectItem> todasCategorias;
private List<Categoria> categoriaClasse;
private String categoriaSelecionada;
public void listaCategorias(){
todasCategorias = new ArrayList<>();
categoriaClasse = categoriaPU.listarCategorias(categoria);
SelectItemGroup grupo = new SelectItemGroup("Grupo1");
for(int i=0; i<categoriaClasse.size(); i++){
grupo.setSelectItems(new SelectItem[]{new SelectItem(categoriaClasse.get(i).getCategoriaId(), categoriaClasse.get(i).getCategoriaNome())});
}
todasCategorias.add(grupo);
}
public Categoria getCategoria() {
return categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
public List<SelectItem> getTodasCategorias() {
return todasCategorias;
}
O que quero fazer é esse codigo abaixo só que ao inves de pegar esses valores predefinidos pegar o que esta no Array categoriaClasse
for(int i=0; i<categoriaClasse.size(); i++){
grupo.setSelectItems(new SelectItem[]{
new SelectItem("1","valor1"),
new SelectItem("2", "valor2")
});
}
Ele criou 3 grupos, ao inves de 1 grupo e 3 categorias quando coloquei o todasCategorias.add(grupo) dentro do for, quando coloquei o new grupo dentro do for ele criou 3 grupos so que cada um com uma categoria diferente dentro… ao inves de um grupo com as 3 categorias
O erro está no preenchimento do vetor na linha “grupo.setSelectItems(new SelectItem[]{new SelectItem(categoriaClasse.get(i).getCategoriaId(), categoriaClasse.get(i).getCategoriaNome())});” tenho certeza, mas nao sei outra maneira de preencher esse vetor do tipo SelectItem
Olá Blayd, o que quero fazer é exatamente isso, so que ao inves de ter as strings escritas manualmente pega-las na minha array categoriasClasse que já esta preenchida com as categorias que preciso…
SelectItem[] todasCategorias = new SelectItem[categoriaClasse.size];
SelectItemGroup grupo = new SelectItemGroup("Grupo1");
for(int i = 0; i < categoriaClasse.size; i++){
todasCategorias[i] = new SelectItem(categoriaClasse.get(i).getCategoriaId(), categoriaClasse.get(i).getCategoriaNome());
}
grupo.setSelectItems(todasCategorias);
mais ou menos isso vc tem que testar pra ver se da certo