[RESOLVIDO] Não consigo utilizar o comando case?

4 respostas
C

Olá pessoal, estou querendo ao selecionar dentro da caixa de dialogo com seus itens no case executar o comando, mais não esta dando certo, somente o primenro item do case é que executo.

O codigo esta no oncreate
// caixa de dialogo de uma escolha no jogo
	public void singleChoiceDialog() {
		final CharSequence[] items = { "Sound Piano", "Sound Guitar",
				"Sound Organ", "Sound Saxophone" };
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle("Choose the type of sound");
		builder.setSingleChoiceItems(items, -1,
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int item) {
						switch (item) {

						case 0:
							TocarSoundPiano();
							break;
						case 1:
							TocarSoundGuitar();
							break;
						case 2:
							TocarSoundOrgan();
							break;
						case 3:
							TocarSoundSaxophone();
							break;

						}
					}
				}).setPositiveButton("OK",
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub

					}

				});
		AlertDialog alert = builder.create();
		alert.show();
	}

Se eu mudo a sequencia do case colocando por exemplo o comando TocarSoundGuitar(); no case 0 (Zero) funciona este comando, mais na sequencia da ordem não estou conseguindo fazer.

Agradeço a ajuda.

Obrigado.

4 Respostas

davidbuzatto

1 - Você tem certeza dos valores que item está recebendo?
2 - Será que o problema não é nos métodos?
3 - Vc tentou depurar seu código? Qual foi o resultado?

C

davidbuzatto:
1 - Você tem certeza dos valores que item está recebendo?
2 - Será que o problema não é nos métodos?
3 - Vc tentou depurar seu código? Qual foi o resultado?

Obrigado por responder davidbuzatto

Resposta:
1-Eu acho que sim, pois fiz um teste com um dialogo antes, para fazer os testes

case 0: mensagemExibir("Entrou aqui no piano", null); //progressDialog = ProgressDialog.show(PianoActivity.this, "", "Loading..."); TocarSoundPiano(); break; case 1: mensagemExibir("Entrou aqui na guitar", null); //progressDialog = ProgressDialog.show(PianoActivity.this, "", "Loading..."); TocarSoundGuitar(); break;

Resposta
2-Sou novo em java, o que seria “problema nos métodos”

Obrigado.

romarcio

Coloca um System.out.println("valor item: " + item); antes do bloco switch só para ver se o valor do paramento item é mesmo o esperado sempre que você chama esse método.

C

Obrigado Romarcio, já resolvi, coloquei uma variavel boolean para setar no play de cada som usando um if.

Valeu pela ajuda de todos.

Criado 7 de setembro de 2012
Ultima resposta 7 de set. de 2012
Respostas 4
Participantes 3