Ir para o proximo focus no edittext? [RESOLVIDO]

Pessoal,

Boa tarde

Como faço para ir para o proximo edit setfocus?

Desculpe perguntas básicas, mais estou aprendendo agora java e tenho algumas duvidas.

Resumindo, se eu tiver no edittext1 quero que ao apertar o botão entrar no edittext2, se eu tiver no edittex2 apertar o botão entrar no edittext3.

Fiz um esquema de pintar o Linearlayout quando o edit recebe o focus

[code]// como defalut vem com a cor azul
dados_cliente.setBackgroundColor(Color.parseColor("#6495ED"));

	// configurações conforme o focus do edit
	edt_cliente.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_cliente.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_cliente.clearFocus();					
				dados_cliente.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});

	edt_profissional.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_profissional.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_profissional.clearFocus();					
				dados_profissional.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});
	
	edt_item.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_item.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_item.clearFocus();					
				dados_item.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});
	
	edt_quantidade.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_quantidade.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_quantidade.clearFocus();					
				dados_quantidade.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});
	
	edt_desconto.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_desconto.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_desconto.clearFocus();						
				dados_desconto.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});
	
	edt_ajuste.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_ajuste.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_ajuste.clearFocus();				
				dados_ajuste.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});
	
	edt_assistente.setOnFocusChangeListener(new OnFocusChangeListener() {
		public void onFocusChange(View v, boolean hasFocus) {
			if (hasFocus) {
				dados_assistente.setBackgroundColor(Color
						.parseColor("#6495ED"));
			} else {
				edt_assistente.clearFocus();					
				dados_assistente.setBackgroundColor(Color.TRANSPARENT);
			}
		}
	});[/code]

Então quando apernat no botão confirmar ir para o proximo edit e executar este codigo acima, que ja esta funcionando.

Obrigado pela atenção.

findViewById(R.id.email).setNextFocusDownId(R.id.password);
        if(DeviceInfo.isHoneycombOrHigher())
            findViewById(R.id.email).setNextFocusForwardId(R.id.password);

Esse check para Honeycomb é por que para versões mais recentes do Android existe o nextFocusForward.

Olá Marky, na verdade seria algo simples, se eu tiver no foco de um edit passar para o outro atraves da ação do onclick de um button

Não sei como é feito isso

tentei assim

[code]// chama a tela de confirmação
bt_confirma.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

			edt_cliente.setNextFocusDownId(edt_profissional.getId());
			edt_profissional.setNextFocusDownId(edt_item.getId());		
			
		}
	});[/code]

Mais nãoda de pular para o proximo focus. Vi este codigo na net.

Obrigado.

view.requestFocus();

[quote=Marky.Vasconcelos] view.requestFocus(); [/quote]

Estou tentando fazer isso, mais não esta dando certo, não esta pulando para o proxuimo focus do edittex

// chama a tela de confirmação bt_confirma.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { v.requestFocus(); } });

Obrigado.

O v do onClick é a propria View que disparou o evento, no caso voce está requestando o foco nele mesmo.

faça algo como:

bt_confirma.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
terceiroCampo.requestFocus();
}
}

[quote=Marky.Vasconcelos]O v do onClick é a propria View que disparou o evento, no caso voce está requestando o foco nele mesmo.

faça algo como:

bt_confirma.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ terceiroCampo.requestFocus(); } } [/quote]Olá, isso ai foi algo que tentei desde o inicio

// chama a tela de confirmação bt_confirma.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { edt_profissional.requestFocus(); } });

Mais não muda o foco para o segundo edittext, além do mais preciso de algo que saiba quando o edit que esta em foco para ir para o proximo edit, assim desta forma mesmo se funcionasse não daria para usar porque limitei apenas para o edt_profissional o focus.

Muito obrigado.

Tem as flags focusableOnTouchMode, mas por padrão TextView são true.

Já usei o requestFocus e funcionou como eu disse.

Se voce quer pelo OK ou NEXT no teclado precisa ser pelo nextForwardId ou nextFocusDownId.

[quote=Marky.Vasconcelos]Tem as flags focusableOnTouchMode, mas por padrão TextView são true.

Já usei o requestFocus e funcionou como eu disse.

Se voce quer pelo OK ou NEXT no teclado precisa ser pelo nextForwardId ou nextFocusDownId.[/quote]Sim consegui fazer funcionar

// chama a tela de confirmação letras bt_confirma.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (edt_cliente.isFocused()) { edt_profissional.requestFocus(); edt_cliente.clearFocus(); } else if (edt_profissional.isFocused()) { edt_item.requestFocus(); edt_profissional.clearFocus(); } } });
E esta funcionando…

Mais tem um problema, preciso que esta função seja false

Ai não funciona, alguma idéia?

Obrigado.

Descubri, agora sim esta dando certo

[code]public void setFocusEdit() {
if (edt_cliente.isFocused()) {
edt_profissional.setFocusableInTouchMode(true);
edt_profissional.requestFocus();
edt_cliente.clearFocus();
edt_cliente.setFocusableInTouchMode(false);

	} else if (edt_profissional.isFocused()) {
		edt_item.setFocusableInTouchMode(true);
		edt_item.requestFocus();
		edt_profissional.clearFocus();
		edt_profissional.setFocusableInTouchMode(false);
		
	} else if (edt_item.isFocused()) {
		edt_quantidade.setFocusableInTouchMode(true);
		edt_quantidade.requestFocus();
		edt_item.clearFocus();
		edt_item.setFocusableInTouchMode(false);
		
	} else if (edt_quantidade.isFocused()) {
		edt_desconto.setFocusableInTouchMode(true);
		edt_desconto.requestFocus();
		edt_quantidade.clearFocus();
		edt_quantidade.setFocusableInTouchMode(false);
	
	} else if (edt_desconto.isFocused()) {
		edt_ajuste.setFocusableInTouchMode(true);
		edt_ajuste.requestFocus();
		edt_desconto.clearFocus();
		edt_desconto.setFocusableInTouchMode(false);
	
	} else if (edt_ajuste.isFocused()) {
		edt_assistente.setFocusableInTouchMode(true);
		edt_assistente.requestFocus();
		edt_ajuste.clearFocus();
		edt_ajuste.setFocusableInTouchMode(false);
	
	} else if (edt_assistente.isFocused()) {
		edt_cliente.setFocusableInTouchMode(true);
		edt_assistente.clearFocus();
		edt_assistente.setFocusableInTouchMode(false);
	}
	
	
}[/code]

Obrigado.