Pegar o valor de um edittext

8 respostas
M

Bem, na verdade o que eu quero fazer é pegar o valor de um edittext e jogar em um parametro do meu remotecall…

Estou fazendo assim:

...
	<remotecall funcname="fazLogin">
		<param>
			<method name="getEmpresa">
				return canvas.geral.entrada.txtempresa.getText();
			</method>
		</param>
		<param>
...

Porém, quando eu executo esse remotecall, os parametros ficam zerados, ele nao pega o conteudo do meu edittext…o que pode estar acontecendo?

8 Respostas

E

uma pergunta… esse seu remotecall está diretamente no canvas certo?

uma dica, sabe a janela de debug do laszlo?
testa:

canvas.geral.entrada.txtempresa.getText()

verifique se ele está pegando mesmo o valor do campo,
pode ser que o caminho estenha errado… :roll:

a janela de debug do laszlo é uma mão na roda para
verificar alguns detalhes como este ae de acesso a
objetos da interface

M

Cara, no debug funciona beleza, soh não estou conseguindo jogar os valores para dentro do meus parametros....

eis o codigo:

<canvas debug="true">
<debug x="0" y="0" width="500" height="275" />
<!-- RPC -->
   <security>
        <allow>
            <pattern>^br.com.info\.Login</pattern>
        </allow>
    </security> 
    
<javarpc name="loginRPC" scope="webapp" classname="br.com.info.Login">
        <handler name="onload">
            Debug.write('funcionou');
        </handler>

        <handler name="onerror" args="errmsg">
            Debug.write('(types onerror) error:', errmsg);
        </handler>        

	<remotecall funcname="fazLogin">
		<param>
			<method name="getEmpresa">
				return canvas.geral.entrada.txtempresa.getText();
			</method>
		</param>
		<param>
			<method name="getUsuario">
				return canvas.geral.entrada.txtusuario.getText();
			</method>
		</param>		
		<param>	
			<method name="getSenha">
				return canvas.geral.entrada.txtsenha.getText();
			</method>
        </param>					
        <method event="ondata" args="value">
        	if (value == 0){
        		canvas.geral.entrada.txtmsg.setText('OK');
        	}
        	
        	if (value == 1) {
        		canvas.geral.entrada.txtmsg.setText('Emprea não cadastrada');
        	}
        	
        	if (value == 2){
        		canvas.geral.entrada.txtmsg.setText('Usuario ou senha incorreto');
        	}
        	
        	if (value == 3){
        		canvas.geral.entrada.txtmsg.setText('Tudo errado!!');
        	}
        </method>					
	</remotecall>
</javarpc>


	<view align="center" valign="middle" layout="axis:x; spacing:1" name="geral">
	    <view resource="img/logo.jpg"/>
	    <view valign="middle" name="entrada">
           <simplelayout spacing="1"/>
           <text>Empresa:</text>
           <edittext name="txtempresa" width="110"></edittext>
           <text>Usuário:</text>
           <edittext name="txtusuario" width="110"></edittext>
           <text>Senha:</text> 
           <edittext name="txtsenha" password="true" width="110"></edittext>
           <button width="110" text="Entrar" onclick="canvas.loginRPC.fazLogin.invoke();" >
           </button>
           <text name="txtmsg"></text>
        </view>
	</view>
</canvas>
E

hum estava lendo aqui a documentação
e me parece que o problema não está em recuperar
o que tem no campo, mas sim no formato que
você utilizou para o envio

de uma olhada:
6.1. Type mapping of parameters from JavaScript to Java

no exemplo é utilizado para o envio o seguinte formato:

<remotecall name="pd1" funcname="passDouble">
            <param value="42.1" />
        </remotecall>

no seu caso teria que ajustar para um formato similar a este :roll:

M

Soh que este formato usa um valor fixo, 42.1 no caso. Eu quero buscar o valor de um edittext; e eu estou seguindo o seguinte exemplo:

...
        <remotecall name="togglesearch" funcname="doGoogleSearch">

            <param value="'2TKUw4ZQFHJ84ByemZK0EXV0Lj+7xGOx'" />
            <param>
                <attribute name="toggle" value="0" type="number" />
                <method name="getValue">
                    var searchTerm;
                    if (toggle % 2 == 0) {
                        searchTerm = 'democrat';
                        toggle = 1;
                    } else {
                        searchTerm = 'republican';
                        toggle = 0;
                    }
                    Debug.write('search term is', searchTerm);
                    return searchTerm;
                </method>
            </param>
            <param value="1" />
            <param value="10" />
            <param value="true" />
            <param value="''" />
            <param value="true" />
            <param value="''" />
            <param value="''" />
            <param value="''" />

            <handler name="ondata" args="value">
                Debug.write('result is:')
                Debug.inspect(value);
            </handler>

        </remotecall>
...
http://labs.openlaszlo.org/trunk-nightly/docs/guide/rpc.html#d0e25873

Soh naum uso o attribute, pois não entendi a lógica dele...

E

tenta algo como:

<remotecall name="????" funcname="???">
    <param value="${canvas.geral.entrada.txtsenha.getText()}" />
</remotecall>

altere onde tem ? pelo nome correto e faça um teste :wink:

M

e no mesmo link q vc me passou tem o seguinte exemplo:

... <remotecall name="pd3" funcname="passDouble"> <param> <method name="getValue"> return new LzRPC.DoubleWrapper(42.0); </method> </param> </remotecall> ...

Veja q é da mesma forma q estou fazendo…

M

Cara, fiz da forma q vc me falou…

<param value="${canvas.geral.entrada.txtsenha.getText()}" />

E continuou dando problema, mas dai percebi que o getText() retorna um edittext, e não um string…dai fiz da seguinte forma:

<param value="${canvas.geral.entrada.txtsenha.text}" />

dai funcionou q é uma beleza…

Resolvido o pobrema! :grin:

E

boa :grin:

Criado 3 de outubro de 2006
Ultima resposta 4 de out. de 2006
Respostas 8
Participantes 2