Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

mrodriguez

Duvida em HasMap

Mensagens Recomendadas

mrodriguez

Ora,

Tenho um ArrayList de HashMap, Dois Monumentos, e

ArrayList<HashMap<String, String>> monumentos;

m1 = new Monumento("Ponte Pedro e Inês", Integer.toString(R.drawable.ponte_p_i),getString(R.string.Ponte_P_I_lista), Integer.toString(R.drawable.iconnot));
		m2 = new Monumento("Jardim das Lágrimas", Integer.toString(R.drawable.jardim_lagrimas), getString(R.string.Jardim_Lagrimas_lista), Integer.toString(R.drawable.iconnot));

E uma funçao para adicionar esses mesmo monumentos,

public void adicionaMonumentos(Monumento m){
	   monument = new HashMap<String, String>();

	   
       monument.put("Titulo", m.getTitulo());
       monument.put("Descricao", m.getDescricao());
       monument.put("Imagem", m.getImagem());
       monument.put("CheckIMG", m.getCheckImage());
       monumentos.add(monument);
}	

A minha duvida é o seguinte:

Como faço para modificar um valor num monumento em especifico, por exemplo mudar o CheckIMG de um monumento?

Tenho também implementada a classe Monumento com os métodos set and get.

Penso que seja parecido com isto, mas deve estar a faltar-me algo...

	monumentos.set(0, monument.get("Jardim Das Lagrimas"));

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Vais buscar o HashMap ao ArrayList e alteras o valor:

HashMap<String, String> monument = monumentos.get(x);
monument.put("CheckIMG", y);

Mas a tua classe Monumento deveria servir para alguma coisa semelhante...


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mrodriguez

É isso.

Mas usando a classe Monumento, teria de fazer:

m1.setCheckImage(Integer.toString(R.drawable.checkicon));

Agora como altero este monumento no ArrayList monumentos?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Não estou a perceber a tua dúvida. Tu tens um ArrayList de HashMaps, que me parece que representam as características de um objecto Monumento. Se queres ter um ArrayList de monumentos, tens que dizer que é um ArrayList de monumentos:

ArrayList<Monumento> monumentos;

E para alterares o que quer que seja num monumento dessa ArrayList, só tens que chamar o método sobre o objecto:

monumentos.get(x).setCheckImage(y);

Ou mesmo:

Monumento m = monumentos.get(x);
m.setCheckImage(y);


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mrodriguez

Eu tenho um

ArrayList<HashMap<String, String>> monumentos;

Não posso ter um ArrayList<Monumentos> pois o que estou a fazer não o permite.

Depois tenho o tal

HashMap<String, String> monument;

Crio os dois monumentos, coloco no hashmap e depois adiciona ao arrayList.

A minha dúvida está em aceder ao monumento propriamente dito através do arrayList e alterar uma variavel do monumento.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mrodriguez

Já encontrei a solução.

O que pretendia era simples:

monumentos.get(1).put("CheckIMG", Integer.toString(R.drawable.checkicon));

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Foi o que eu te disse na primeira resposta...


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.