Saltar para conteúdo


Foto
- - - - -

OnTouch event [Android]


  • Por favor inicie sessão para responder
2 respostas a este tópico

#1 NunoDinis

NunoDinis

    Membro

  • Membros
  • PipPip
  • 22 mensagens
  • Samsung Galaxy Tab 10.1, Huawei G300

Mensagem publicada 26 November 2012 - 09:32

Bom dia,
Tenho esta função que percorre todas as caixas de texto da minha atividade, para depois eu clicar sobre uma e fazer-me umas validações com a BD.
Está a funcionar, porém, ele efetua o processo o número de vezes que tem caixas de texto preenchidas, o que não devia. Devia sim, percorrer todas as caixas, e quando carregar sobre a mesma só retorna uma mensagem, era sinal que só retornava uma vez.
Alguém tem ideia do que é ?

myLinearLayout = (RelativeLayout) findViewById( R.id.LayoutSimple2 );
ArrayList<EditText> myEditTextList = new ArrayList<EditText>();
for( int i = 0; i < myLinearLayout.getChildCount(); i++ )
{
		if( myLinearLayout.getChildAt( i ) instanceof EditText )
		{
				EditText et = (EditText) myLinearLayout.getChildAt( i );

				et.setOnTouchListener(new OnTouchListener() {
						public boolean onTouch(View v, MotionEvent event) {

								Editable ValorCaixaDeTexto = ((EditText) v).getText();

								if(ValorCaixaDeTexto.length()>0)
								{
										//FAZ AS OPERAÇÕES QUE QUERO
										 mensagem("TESTE","Esta mensagem aparece o numero de caixas preenchidas");
								}

								return true;
						}	  
				});
		}
}

Editado por NunoDinis, 26 November 2012 - 09:32.


#2 Driver

Driver

    Membro

  • Membros
  • PipPip
  • 51 mensagens

Mensagem publicada 26 November 2012 - 16:20

Boas,

Tás a adicionar um Listener por cada View EditText, ou seja, por cada vez que tocas no Texto é quando ele executa aquele código. Se calhar devias encapsular tudo num novo Layout e colocar o OnTouchListener no próprio Layout (Não sei se isso é possível :P, pois nunca experimentei).

Cumps
Driver

#3 NunoDinis

NunoDinis

    Membro

  • Membros
  • PipPip
  • 22 mensagens
  • Samsung Galaxy Tab 10.1, Huawei G300

Mensagem publicada 26 November 2012 - 17:00

Obrigado Driver, já consegui resolver os dois :)