[RESOLVIDO]Como povoar uma textView com informações do web service usando Ksoap2?

20 respostas
R

Fala galera,

Estou começando a usar este ksoap2, usei o metodo de exemplo para setar o texto de um textView para o valor do resultado, só que este metodo retorna um SoapObject, gostaria de saber como eu posso organizar este resultado e mostra-lo de forma ordenada. Pois do modo como estou fazendo ele retorna uma grande String com os valores corretos, mas não formatados

private void obterListaDoWebService() {
		try {

			TextView texto = (TextView) findViewById(R.id.result);
			// TextView que vai receber o valor final da soma;

			SoapObject requisicao = new SoapObject(NAMESPACE, METHOD_NAME);
			// Cria um SoapObject passando os parâmetros;

			requisicao.addProperty("pData", "2012-04-01T18:13:00");
			// Adiciona o valor do primeiro parâmetro do web service;

			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
					SoapEnvelope.VER11);
			// Cria o envelope;

			envelope.dotNet = true;
			// Especifica que o web service utilizado é um .NET;

			envelope.setOutputSoapObject(requisicao);
			// Envia a requisição ao web service;

			HttpTransportSE http = new HttpTransportSE(URL);
			// Cria a comunicação com o local do web service;

			http.call(SOAP_ACTION, envelope);
			// Chama o web service passando o nome do NAMESPACE da aplicação
			// ASP.NET mais o nome do metódo e o envelope;

			envelope.implicitTypes = true;

			SoapObject listaDataSet = (SoapObject) envelope.getResponse();

			for (int i = 0; i < listaDataSet.getPropertyCount(); i++) {

				SoapObject obj = (SoapObject) listaDataSet.getProperty(i);

				//ArrayList<String>
				listaDeResultados.add(obj.toString());
			}

			texto.setText(listaDeResultados.toString());
			// Adiciono o resultado ao TextView criado;

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

20 Respostas

C

Cara Beleza ?

Poderia printar ai o retorno como está voltando, para intender melhor.

R

C;k:
Cara Beleza ?
Poderia printar ai o retorno como está voltando, para intender melhor.

Opa, valew pela ajuda ai.
O resultado é este:

anyType{schema=anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; }; }; }; }; }; }; }; diffgram=anyType{NewDataSet=anyType{Table=anyType{USUARIO_CODIGO=401; USUARIO_NOME=tc3; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:37:19.89-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:37:19.89-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=402; USUARIO_NOME=tc4; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:38:07.753-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:38:07.753-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=403; USUARIO_NOME=(null); USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:50:01.627-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:50:01.627-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=404; USUARIO_NOME=tc5; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:50:52-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:50:52-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=405; USUARIO_NOME=tc6; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:51:29.56-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:51:29.56-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=406; USUARIO_NOME=bzjshd; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:56:13.733-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:56:13.733-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=407; USUARIO_NOME=gk; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:57:56.077-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:57:56.077-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=408; USUARIO_NOME=zbmz; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T14:00:05.36-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T14:00:05.36-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=409; USUARIO_NOME=yi; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T14:01:00.717-03:00;
.
.
.

Gostaria de ordenar por campos e valores, exemplo:

Codigo: …
Nome: …
Descriçao: …

Perguntei no StackOverflow, um cara me indicou usar o Json ou Gson, mas não faço idéia de como usar. É realmente necessario usar-los?

C

Cara Seguinte:

o que me trinca é isso > No StackOverflow, um cara me indicou usar o Json ou Gson, mas não faço idéia de como usar. É realmente necessario usar-los?
Logico que não por que usar isso se o resultado já está ai ! Por que complicar ??? nusssss.
Isso é falta de estudar os diversos jeitos de fazer a mesma coisa.

O segredo disso é simples.(Com todo o Respeito).

olhe para o seu retorno e tente enxergar assim:

1º Table=anyType{USUARIO_CODIGO=401; USUARIO_NOME=tc3; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:37:19.89-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:37:19.89-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=402; USUARIO_NOME=tc4; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:38:07.753-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:38:07.753-03:00; USUARIO_ATIVO=A; };

2ºTable=anyType{USUARIO_CODIGO=403; USUARIO_NOME=(null); USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:50:01.627-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:50:01.627-03:00; USUARIO_ATIVO=A; }; Table=anyType{USUARIO_CODIGO=404; USUARIO_NOME=tc5; USUARIO_NUMERO_PARTICIPANTES=1; USUARIO_DESCRICAO=anyType{}; USUARIO_LATITUDE=0; USUARIO_LONGITUDE=0; USUARIO_FOTO_PERFIL=anyType{}; USUARIO_DATA_CADASTRO=2012-04-02T13:50:52-03:00; USUARIO_DATA_ATUALIZACAO=2012-04-02T13:50:52-03:00; USUARIO_ATIVO=A; };

Ok. Vamos ao que interessa. notou que a sua informação está sequencianda dentro desse rotorno pelas tags Table=anyType{Tacharam Aqui está o seu resultado :slight_smile: };

O que você tem a fazer é capturar essas propriedas no caso.
Indentepentemente quantas voltar (10, 20, 30) e percorer elas.

SoapObject listaDataSet = (SoapObject) envelope.getResponse();  

int propertyGetRetornoWebCount = listaDataSet.getPropertyCount();  

if ( propertyGetRetornoWebCount > 0){  

        for (int currentGetRetornoWebProperty = 0; currentGetRetornoWebProperty < propertyGetRetornoWebCount; currentGetRetornoWebProperty++) {

             SoapObject objResultSoapObject = new SoapObject(NAMESPACE, METHOD_NAME);
             SoapObject objSoapObject = new SoapObject(NAMESPACE, METHOD_NAME); 
            
           1º Modo  //No caso veja em Debug se já é suficiente para você pegar essa propriedade > Table=anyType{Tacharam Aqui está o seu resultado :) };
             objPedidoResultSoapObject = (SoapObject) listaDataSet .getProperty(currentGetRetornoWebProperty); 
              
              //Se for faça assim com todo o retorno. (Ai tu organiza do jeito que você quiser né ).
               String codigo=  objPedidoResultSoapObject .getPropertyAsString("USUARIO_CODIGO").toString();
               
              2º Modo  //No caso veja em Debug se já é suficiente para você pegar essa propriedade > Table=anyType{Tacharam Aqui está o seu resultado :) };  
                 //Se não for continue assim
                 int propertyResultCount = objPedidoResultSoapObject .getPropertyCount(); 
                
                if(propertyResultCount > 0 ){
                	
                	
                	for (int currentProperty = 0; currentProperty < propertyResultCount ; currentProperty ++) {
                		
                		 //Pegando Resultados Pertinentes ao Resultado de Valores da Ordem
                         	objSoapObject = (SoapObject) objPedidoResultSoapObject .getProperty(currentProperty );  

                                 //Se for faça assim com todo o retorno. (Ai tu organiza do jeito que você quiser né ).
                                  String codigo=  objPedidoResultSoapObject .getPropertyAsString("USUARIO_CODIGO").toString();


                      }



       }
}

Bom é isso.
ufa isso me tomou um bom Tempo.

R

Cara vamos por partes. Primeiro, muito obrigado pela ajuda, e desculpe a ignorancia.

Mas infelizmente não funcionou aqui…

Vendo em Debug, o int propertyGetRetornoWebCount = listaDataSet.getPropertyCount(); retorna 2.

Sendo que tem muito mais registros.

Tem algum motivo especifico? voce ja viu isso acontecer?

C

Retorna 2 Proriedades.

Você tem que fazer o proximo passo que te passei.

SoapObject listaDataSet = (SoapObject) envelope.getResponse();    
      
    int propertyGetRetornoWebCount = listaDataSet.getPropertyCount();    
      
    if ( propertyGetRetornoWebCount > 0){    
      
            for (int currentGetRetornoWebProperty = 0; currentGetRetornoWebProperty < propertyGetRetornoWebCount; currentGetRetornoWebProperty++) {  
      
                 SoapObject objResultSoapObject = new SoapObject(NAMESPACE, METHOD_NAME);  
                 SoapObject objSoapObject = new SoapObject(NAMESPACE, METHOD_NAME);   
                  
                 objResultSoapObject = (SoapObject) listaDataSet .getProperty(currentGetRetornoWebProperty);   
                    
                     //Se não for continue assim  
                     int propertyResultCount = objResultSoapObject .getPropertyCount();   
                      
                    if(propertyResultCount > 0 ){  
                          
                          
                        for (int currentProperty = 0; currentProperty < propertyResultCount ; currentProperty ++) {  
                              
                             //Pegando Resultados Pertinentes ao Resultado de Valores da Ordem  
                                objSoapObject = (SoapObject) objResultSoapObject .getProperty(currentProperty );    
      
                                     //Se for faça assim com todo o retorno. (Ai tu organiza do jeito que você quiser né ).  
                                      String codigo=  objSoapObject .getPropertyAsString("USUARIO_CODIGO").toString();  
      
      
                          }  
           }  
    }

rdgmnz:
Cara vamos por partes. Primeiro, muito obrigado pela ajuda, e desculpe a ignorancia.

Mas infelizmente não funcionou aqui…

Vendo em Debug, o int propertyGetRetornoWebCount = listaDataSet.getPropertyCount(); retorna 2.

Sendo que tem muito mais registros.

Tem algum motivo especifico? voce ja viu isso acontecer?

Pronto veja se dá certo.
Tinha uns erros corrigi.
Meu chefe estava perto !! kkkkkk hsuahsauhasushsau

R

Maravilha, o servidor que eu estava testando esta fora do ar. Assim que der eu testo, mas brigadão mesmo cara.

Só uma duvida, não esta achando esta função .getPropertyAsString voce sabe o que pode ser?

C

Joia bom acho que vai dar certo.

aaaaa você já fez (Ctrl+Shift+O ) na classe. ??

você criou o objeto?

SoapObject objSoapObject = new SoapObject(NAMESPACE, METHOD_NAME);

Essa propriedade getPropertyAsString. é priopria de SoapObject.

Depois é só capturar.

//Se for faça assim com todo o retorno. (Ai tu organiza do jeito que você quiser né ).    
 String codigo=  objSoapObject.getPropertyAsString("USUARIO_CODIGO").toString();

rdgmnz:
Maravilha, o servidor que eu estava testando esta fora do ar. Assim que der eu testo, mas brigadão mesmo cara.

Só uma duvida, não esta achando esta função .getPropertyAsString voce sabe o que pode ser?

R

Opa, acabei de fazer CTRL + SHIFT + O (comando para importar certo?) e mesmo assim.

Sim, criei. Bem estranho.

Estou usando o Ksoap2 v2.4 sera que tem alguma coisa a ver com isto?

só aparece o .getProperty() sera que da certo usando ele? vou testar quando puder…

Esse .getProperty() tambem recebe String, acredito que a versao que eu esteja usando juntou essas duas.

C

Cara utiliza essas novas aqui.

ksoap2-android-assembly-2.5.8-jar-with-dependencies
ksoap2-android-assembly-2.6.0-jar-with-dependencies
ksoap2-android-assembly-2.6.1-jar-with-dependencies

Recomendo essa é a ultima versão:
ksoap2-android-assembly-2.6.2-jar-with-dependencies

rdgmnz:
Opa, acabei de fazer CTRL + SHIFT + O (comando para importar certo?) e mesmo assim.

Sim, criei. Bem estranho.

Estou usando o Ksoap2 v2.4 sera que tem alguma coisa a ver com isto?

só aparece o .getProperty() sera que da certo usando ele? vou testar quando puder…

Esse .getProperty() tambem recebe String, acredito que a versao que eu esteja usando juntou essas duas.

R

Com essa lib apareceu a funçao correta, servidor voltou e testando…

illegal property: USUARIO_CODIGO

C

Cara exatamente nessa linha aqu.

Coloca dem debug e me mostra o que está vindo.
Porfavor

String codigo=  [b]objSoapObject[/b].getPropertyAsString("USUARIO_CODIGO").toString();

A respeito disso.
Você tem que pegar a pripriedade certa que está na Web Service no caso o parametro de retorno.

rdgmnz:
Com essa lib apareceu a funçao correta, servidor voltou e testando…

illegal property: USUARIO_CODIGO

R

Exatamente nesta linha:

objSoapObject = anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=any…

objResultSoapObject = anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; elemen…

propertyResultCount = 1

propertyGetRetornoWebCount = 2

Executando esta linha retorna illegal property: USUARIO_CODIGO

Tentei tambem USUARIO_NOME, USUARIO_NUMERO_PARTICIPANTES, USUARIO_DESCRICAO e nada

C

Te mandei uma MP.

cara em vez de:

SoapObject listaDataSet = (SoapObject) envelope.getResponse();

Faz Assim:

SoapObject listaDataSet = (SoapObject) envelope.bodyIn;

E printa novamente. por favor.

rdgmnz:
Exatamente nesta linha:

objSoapObject = anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=any…

objResultSoapObject = anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; elemen…

propertyResultCount = 1

propertyGetRetornoWebCount = 2

Executando esta linha retorna illegal property: USUARIO_CODIGO

Tentei tambem USUARIO_NOME, USUARIO_NUMERO_PARTICIPANTES, USUARIO_DESCRICAO e nada

R

Te mandei minha classe inteira por mp… devo estar fazendo algo muito errado…

R

C;K muito obrigado viu cara, vc ajudou demais…

E para a galera que tem a mesma duvida, ainda não consegui resolver de modo “oficial” mas fiz uma gambiarra que funcionou… enquanto eu não acho um jeito mais elegante este serve para o MEU proposito.

Desculpem pela nomenclatura de variaveis, sou bem ruin nisto.

//Pega a resposta e transforma em String
String teste2 = envelope.getResponse().toString();

//Faz uma substring a partir do primeiro USUARIO_CODIGO da outra String
String teste3 = teste2.substring(teste2.indexOf("USUARIO_CODIGO="));
			
			//Lista de resultados
			ListView listaUsuarios = (ListView) this.findViewById(R.id.result2);
			
			final List&lt;String&gt; Lista = new ArrayList&lt;String&gt;();
			
                        //Para nao entrar em looping
			boolean continuar = true;
			
			while (continuar) {
				teste3 = teste3.substring(teste3.indexOf("USUARIO_CODIGO="));
				String codigo2 = "Codigo: " + teste3.substring(teste3.indexOf("USUARIO_CODIGO=") + 15,teste3.indexOf(";"));
				teste3 = teste3.substring(teste3.indexOf(";") + 1);
				
				codigo2 = codigo2 + " Nome: " + teste3.substring(teste3.indexOf("USUARIO_NOME=") + 13,teste3.indexOf(";"));
				teste3 = teste3.substring(teste3.indexOf(";") + 1);	 
				
				if (teste3.contains("USUARIO_CODIGO=")) {
					continuar = true;
				} else {
					continuar = false;
				}
				
				Lista.add(codigo2);
				
			}

Enfim, vou montando a string passo a passo, bem trabalhoso adimito. Mas nao achei outro meio.

R

Galera agora sim resolvido, não sei bem explicar como mais foi. Segue o codigo pra que tiver o mesmo problema..

public class ResultadoWS extends Activity {

	// VARIAVEIS DO WEBSERVICE
	private static final String NAMESPACE = "http://tempuri.org/";
	private static final String METHOD_NAME = "ListarUsuarios";
	private static String SOAP_ACTION = " ";
	private static final String URL = "http://192.168.0.111/FriendNet/Principal.asmx";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.resultado_ws);
		obterListaDoWebService();
	}

	private void obterListaDoWebService() {
		try {

			SOAP_ACTION = NAMESPACE + METHOD_NAME;

			// Cria um SoapObject passando os parâmetros;
			SoapObject requisicao = new SoapObject(NAMESPACE, METHOD_NAME);

			// Adiciona o valor do primeiro parâmetro do web service;
			requisicao.addProperty("pData", "2012-04-01T18:13:00");

			// Cria o envelope;
			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
					SoapEnvelope.VER11);
			envelope.setOutputSoapObject(requisicao);
			envelope.dotNet = true;
			HttpTransportSE transport = new HttpTransportSE(URL);
			transport.call(SOAP_ACTION, envelope);

			// Tratando a resposta
			SoapObject listaDataSet = (SoapObject) envelope.getResponse();
			int propertyGetRetornoWebCount = listaDataSet.getPropertyCount();
			ListView listaUsuarios = (ListView) this.findViewById(R.id.result2);
			final List&lt;String&gt; Lista = new ArrayList&lt;String&gt;();

			if (propertyGetRetornoWebCount &gt; 0) {

				SoapObject objResultSoapObject = new SoapObject(NAMESPACE,
						METHOD_NAME);
				SoapObject objSoapObject = new SoapObject(NAMESPACE,
						METHOD_NAME);

				objResultSoapObject = (SoapObject) listaDataSet.getProperty(1);
				objSoapObject = (SoapObject) objResultSoapObject.getProperty(0);
				int propertyResultCount = objSoapObject.getPropertyCount();
				if (propertyResultCount &gt; 0) {
					for (int currentProperty = 0; currentProperty &lt; propertyResultCount; currentProperty++) {

						SoapObject obj = (SoapObject) objSoapObject
								.getProperty(currentProperty);

						String codigo = obj.getProperty(&quot;USUARIO_CODIGO&quot;)
								.toString();
						String nome = obj.getProperty(&quot;USUARIO_NOME&quot;)
								.toString();

						String itemTotal = &quot;Codigo: &quot; + codigo + &quot; Nome: &quot;
								+ nome;

						Lista.add(itemTotal);
					}
					ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(
							this, R.layout.list_item, Lista);
					listaUsuarios.setAdapter(adapter);
				}
			}
		} catch (Exception e) {
			AlertDialog aD = new AlertDialog.Builder(ResultadoWS.this).create();
			aD.setTitle("Erro!");
			aD.setMessage(e.toString());
			aD.setButton("OK", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {

				}
			});
			aD.show();
			e.printStackTrace();
		} catch (OutOfMemoryError e) {
			AlertDialog aD = new AlertDialog.Builder(ResultadoWS.this).create();
			aD.setTitle("Erro!");
			aD.setMessage(e.toString());
			aD.setButton("OK", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {

				}
			});
			aD.show();
			e.printStackTrace();
		}
	}
}
C

Cara ficou bom :slight_smile:

Parabéns.

P

Olá, não sei se conhecem mas indico esse site muito bom:
Android
http://aprendacomigo.com.br/videos/category/android/86

Site de videos muito legal

C

sgahsaushaushaushauhsausahsausahu

As aulas do Professor Neri Aldoir Neitzke. :slight_smile:

Muito Bom :slight_smile:

Acessa o nosso lá !!

www.devmobilebrasil.com.br

[email removido:
]Olá, não sei se conhecem mas indico esse site muito bom:
Android
http://aprendacomigo.com.br/videos/category/android/86

Site de videos muito legal

P

Boa tarde, pessoal!
Vocês já viram o tanto de vídeo que tem aqui:
http://aprendacomigo.com.br/videos/category/java/82

Criado 3 de abril de 2012
Ultima resposta 11 de abr. de 2012
Respostas 20
Participantes 3