thegoodfellas/blogset-br huggingface dataset:
atencao para a nossa irresponsabilidade ao lidar com o corpo.Aos 40 anos, voce pesa dez quilos mais do que aos 20. Aos 60, ja acumulou mais uma arroba de gordura, nao resiste aos doces nem aos salgadinhos, fuma, bebe um engradado de cerveja de cada vez, e viciado em refrigerante, so sai da mesa quando esta prestes a explodir e ainda se da ao luxo de passar o dia no conforto.Quando se trata do corpo, voce se comporta como crianca mimada: faz questao absoluta de viver muito, enquanto age como se ele fosse um escravo forcado a suportar desaforos diarios e a aturar todos os seus caprichos, calado, sem receber nada em troca.Ai, quando vem a hipertensao, o diabetes, a artrite, o derrame cerebral ou o ataque cardiaco, maldiz a propria sorte, atribui a culpa a vontade de Deus e reclama do sistema de saude que nao fez por voce tudo o que deveria.Desculpe a curiosidade: e voce, pobre injusticado, nao tem responsabilidade nenhuma?(Transcrito da Folha)
mulheres mencionaram este arrependimento demonstrando culpa e tristeza. Simplificando seu estilo de vida e fazendo escolhas mais conscientes e possivel mudar seus habitos. Essa reprogramacao a principio assusta, mas ao longo do tempo tras felicidade, oportunidades, alem de qualidade de vida.3. Queria ter tido a coragem de expressar meus sentimentos.Muitas pessoas suprimem seus sentimentos para nao desagradar os outros. Assim, vivem reprimindo desejos e acabam desenvolvem doencas devido a essa grande carga emocional recalcada.Nao temos como controlar a reacao dos outros. Ser honesto sobre seus sentimentos permite que as pessoas o vejam como voce e, e assim, e possivel criar relacoes mais autenticas e saudaveis. Afinal, nao e possivel agradar a todos, mas e possivel preservar sua saude ao se respeitar.4. Gostaria de ter mantido minhas amizades. Muitos nao percebem como sao importantes os amigos ate o momento enfrentar a morte. Somos muito criticos com nossos amigos, queremos pessoas perfeitas que atendam nossas expectativas, mas tambem nao somos perfeitos. Assim, focamos apenas os defeitos das pessoas, as afastamos de nossas vidas e esquecemos-nos de suas qualidades e beneficios. Outras vezes criamos desculpas baseadas na falta de tempo, de vontade, e deixamos de criar oportunidades para preservar nossos amigos.Na correria do dia a dia e comum deixar amizades para segundo plano enquanto status e dinheiro tomam local importante e privilegiado em nossas vidas. Muitos so percebem o quanto a troca foi ruim quando estao proximos do fim de suas vidas. Nao se substitui amor, camaradagem, parceria por dinheiro nenhum do mundo. Uma vida plena e feliz precisa de relacionamentos!5. Gostaria de ao longo da vida ter me permitido ser mais feliz. E surpreendente, mas este e um arrependimento comum. Muitos so percebem no fim de suas vidas que felicidade e uma escolha. As pessoas ficam presas a habitos e padroes inflexiveis. Assim, a pessoa apenas EXISTE, nao VIVE. O medo impede as pessoas de se arriscarem, os padroes nao permite que riam de si mesmas, que passem por obstaculos de forma leve e se divirtam com coisas simples. Valorizamos excessivamente as dificuldades e nao damos a devida importancia aos acontecimentos bons da vida.Uma reflexao: Quando foi a ultima fez que voce deu uma boa gargalhada?A vida e uma escolha. Trata-se da SUA vida. Escolha conscientemente, escolha de forma sabia, escolha com honestidade, escolha com alegria!
entre emissor e receptor por onde a mensagem fluisse. Mas existem barreiras a boa comunicacao. Algumas delas sao:Falta de objetividade e clareza: as vezes por medo de como o outro ira reagir tendemos a transmitir a mensagem de forma pouco eficiente e saimos da conversa com aquela sensacao de que o outro nao entendeu o que queriamos transmitir. E de fato ele nao entendeu.Momento e local equivocados: alguns assuntos precisam ser conversamos no momento e local oportuno. Cuidado com a impulsividade e avalie se as condicoes para a comunicacao estao favoraveis.Problemas emocionais: cuidado ao iniciar ou dar continuidade a uma comunicacao quando alguma das partes esta emocionalmente abalada. Comunicacao requer o bom uso da razao. Se o outro estiver emocionalmente alterado nao revide com grosserias. Preserve a calma, mantenha-se paciente e cortes, pois qualquer atitude contraria sera desfavoravel a conversa e a comunicacoes futuras. Se nao estiver bem, reorganize-se emocionalmente primeiro.Lembre-se que a comunicacao nao se baseia apenas na palavra. Nos expressamos de forma verbal (palavra oral ou escrita) e de forma nao verbal (olhar, postura, tom de voz, expressao, gestos, etc.).Pesquisas feitas na Universidade da California identificaram que 93% dos sentimentos sao expressos atraves da comunicacao nao verbal. Apenas 7% sao representados pelo conteudo da fala.Sempre que tiver uma mensagem dificil ou conflituosa a transmitir prepare-se previamente. Estude a melhor forma de passa-la a seu receptor e aumente as chances de ter uma comunicacao eficaz. Uma dica e seguir a estrutura abaixo:IntroducaoIniciar a conversa identificando se e o melhor momento e a melhor forma de inicia-la.Trazer o receptor para a conversa (Mostrar e reconhecer sua importancia)Tornar o receptor parte da mensagem, fazer com que ele compreenda sua importancia e seu papel diante do objetivo da conversa.ElogiarPrimeiramente enfatize os acertos, diga ao receptor o que foi legal e como voce se sentiu quando ele agiu de forma positiva.Falar os sentimentosNesse momento exponha o objetivo da conversa sem criticas ou acusacoes, mas falando sobre seus sentimentos. Apenas relate as consequencias das acoes do outro sem julgamentos e exponha quais acoes deste poderiam ser mais positivas e motivadoras para que voce conquiste o objetivo almejado.OuvirEsse e o momento de verificar o que o outro vai fazer com as informacoes que lhe foram passadas. Nao fique chateado com um feedback negativo. Nesse momento apenas observe, veja a reacao do outro, tente compreender os motivos daquela reacao. Compreenda os medos, as fraquezas e ate mesmo o egocentrismo do outro sem se deixar abalar emocionalmente, mas utilizando a razao de forma adequada.AvaliacaoAvalie como foi a conversa, se foi melhor que conversas anteriores, se voce poderia aprimorar a comunicacao tornando-a mais adequada.Nao culpe o outro. Busque novas formas de se comunicar e de aprimorar-se sempre. Voce nao tem como controlar a reacao do outro, mas pode adequar sua comunicar a fim de aumentar as possibilidades de sucesso!
Huseyin e um amigo da Turkia, ele e divertido, inteligente e estamos trocando muitas informacoes...rsI love you http://www.youtube.com/user/kabom2008san?feature=mhum#p/a/f/1/4pnukjHXp6M Eu retornava pra casa, em um dia muito frio quando tropecei em uma carteira.Procurei por algum meio de identificar o dono.Mas a carteira so continha tres dolares e uma carta amassada,que parecia ter ficado ali por muitos anos.No envelope, muito sujo, a unica coisa legivel era o endereco do remetente.Comecei a ler a carta tentando achar alguma dica.Entao eu vi o cabecalho.A carta tinha sido escrita quase sessenta anos atras.Tinha sido escrita com uma bonita letra feminina em azul claro sobre um papelde carta com uma flor ao canto esquerdo.A carta dizia que sua mae a havia proibido de se encontrar com Michael masela escrevia a carta para dizer que sempre o amaria.Assinado Hannah.Era uma carta bonita, mas nao havia nenhum modo, com excecao do nomeMichael, de identificar o dono.Entrei em contato com a cia. telefonica, expliquei o problema ao operador elhe pedi o numero do telefone no endereco que havia no envelope.O operador disse que havia um telefone mas nao poderia me dar o numero.Por sua propria sugestao, entrou em contato com o numero,explicou a situacao e fez uma conexao daquele telefone comigo.Eu perguntei a senhora do outro lado, se ela conhecia alguem chamada Hannah.Ela ofegou e respondeu:- "Oh! Nos compramos esta casa de uma familia que tinha uma filha chamada Hannah.Mas isto foi ha 30 anos!"- "E voce saberia onde aquela familia pode ser localizada agora?"Eu perguntei.- "Do que me lembro, aquela Hannah teve que colocar sua mae em um asiloalguns anos atras", disse a mulher."Talvez se voce entrar em contato eles possam informar".Ela me deu o nome do asilo e eu liguei.Eles me contaram que a velha senhora tinha falecido alguns anos atras mas elestinham um numero de telefone onde acreditavam que a filha poderia estar vivendo.Eu lhes agradeci e telefonei.A mulher que respondeu explicou que aquela Hannah estava morando agora em um asilo.A coisa toda comeca a parecer estupida, pensei comigo mesmo.Pra que estava fazendo aquele movimento todo so para achar o dono de umacarteira que tinha apenas tres dolares e uma carta com quase 60 anos?Apesar disto, liguei para o asilo no qual era suposto que Hannah estavavivendo e o homem que atendeu me falou,- " Sim, a Hannah esta morando conosco."Embora ja passasse das 10 da noite, eu perguntei se poderia ir para ve-la.- "Bem", ele disse hesitante,"se voce quiser se arriscar, ela podera estar na sala assistindo a televisao".Eu agradeci e corri para o asilo.A enfermeira noturna e um guarda me cumprimentaram a porta.Fomos ate o terceiro andar.Na sala, a enfermeira me apresentou a Hannah.Era uma docura, cabelo prateado com um sorrisso calmo e um brilho no olhar.Lhe falei sobre a carteira e mostrei a carta.Assim que viu o papel de carta com aquela pequena flor a esquerda,ela respirou fundo e disse,- "Esta carta foi o ultimo contato que tive com Michael".Ela pausou um momento em pensamento e entao disse suavemente,- "Eu o amei muito. Mas na ocasiao eu tinha so 16 anos e minha mae achavaque
eu era muito jovem.Oh, ele era tao bonito.Ele se parecia com Sean Connery, o ator".- "Sim," ela continuou."Michael Goldstein era uma pessoa maravilhosa.Se voce o achar, lhe fale que eu penso frequentemente nele.E", ela hesitou por um momento, e quase mordendo o labio, "lhe fale que euainda o amo.Voce sabe", ela disse sorrindo com lagrimas que comecaram a rolarem seus olhos,"eu nunca me casei.Eu jamais encontrei alguem que correspondesse ao Michael..."Eu agradeci a Hannah e disse adeus.Quando passava pela porta da saida, o guarda perguntou,- "A velha senhora pode lhe ajudar?"- "Pelo menos agora eu tenho um sobrenome.Mas eu acho que vou deixar isto para depois.Eu passei quase o dia inteiro tentando achar o dono desta carteira".Quando o guarda viu a carteira, ele disse,- "Ei, espere um minuto!Isto e a carteira do Sr. Goldstein.Eu a reconheceria em qualquer lugar.Ele esta sempre perdendo a carteira.Eu devo te-la achado pelos corredores ao menos tres vezes".- "Quem e Sr. Goldstein?" Eu perguntei com minha mao comecando a tremer.- "Ele e um dos idosos do 8o andar.Isso e a carteira de Mike Goldstein sem duvida.Ele deve ter perdido em um de seus passeios".Agradeci o guarda e corri ao escritorio da enfermeira.Lhe falei sobre o que o guarda tinha dito.Nos voltamos para o elevador e subimos.No oitavo andar, a enfermeira disse,- "Acho que ele ainda esta acordado.Ele gosta de ler a noite.Ele e um homem bem velho."Fomos ate o unico quarto que ainda tinha luz e havia um homem lendo um livro.A enfermeira foi ate ele e perguntou se ele tinha perdido a carteira.Sr. Goldstein olhou com surpresa, pondo a mao no bolso de tras e disse,- "Oh, esta perdida!"- "Este amavel cavalheiro achou uma carteira e nos queremos saber se e sua?"Entreguei a carteira ao Sr. Goldstein, ele sorriu com alivio e disse,- "Sim, e minha! Devo ter derrubado hoje a tarde. Eu quero lhe dar uma recompensa".- "Nao, obrigado", eu disse."Mas eu tenho que lhe contar algo.Eu li a carta na esperanca de descobrir o dono da carteira".O sorriso em seu rosto desapareceu de repente.- "Voce leu a carta?""Nao so li, como eu acho que sei onde a Hannah esta".Ele ficou palido de repente.- "Hannah? Voce sabe onde ela esta? Como ela esta?E ainda tao bonita quanto era? Por favor, por favor me fale", ele implorou.- "Ela esta bem... E bonita da mesma maneira como quando voce a conheceu".Eu disse suavemente.O homem sorriu e perguntou,- "Voce pode me falar onde ela esta? Quero chama-la amanha ".Ele agarrou minha mao e disse,"Eu estava tao apaixonado por aquela menina que quando aquela carta chegou,minha vida literalmente terminou.Eu nunca me casei. Eu sempre a amei."- "Sr. Goldstein", eu disse, "Venha comigo".Fomos de elevador ate o terceiro andar.Atravessamos o corredor ate a sala onde Hannah estava assistindo televisao.A enfermeira caminhou ate ela, "Hannah," ela disse suavemente, enquanto apontava para Michael que estava esperandocomigo na entrada. "Voce conhece este homem?"Ela ajeitou os oculos, olhou um momento, mas nao disse uma palavra.Michael disse suavemente, quase em um sussurro, - "Hannah, e o Michael. Lembra-se de mim?"- "Michael! Eu nao acredito nisto!
Michael! E voce! Meu Michael!"Ele caminhou lentamente ate ela e se abracaram.A enfermeira e eu partimos com lagrimas rolando em nossas faces.- "Veja", eu disse. "Veja como o bom Deus trabalha! Se tem que ser, sera!".Aproximadamente tres semanas depois eu recebi uma chamada do asilo em meu escritorio.-"Voce pode vir no domingo para assistir a um casamento?O Michael e Hannah vao se amarrar"!Foi um casamento bonito, com todas as pessoas do asilo devidamentevestidos para a celebracao.Hannah usou um vestido bege claro e bonito.Michael usou um terno azul escuro.O hospital lhes deu o proprio quarto e se voce sempre quis ver umanoiva com 76 anos e um noivo com 79 anos agindo como dois adolescentes,voce tinha que ver este par.Um final perfeito para um caso de amor que tinha durado quase 60 anos...Autor Desconhecido
Window function e um recurso muito util porque nos permite realizar calculos que antes so poderiam ser feitos com functions ou subquerys, assim podemos escrever menos codigo e evitar joins. Uma window function consegue particionar as linhas de uma consulta e fazer calculos dentro destas particoes. E como fazemos com funcoes agregadas, porem sem agrupar e mantendo as linhas separadas.Pra comecar, disponibilizo as sentencas para criar e popular uma tabela com dados que vao servir de exemplo:CREATE TABLE formula1( posicao integer NOT NULL, piloto character varying(100), equipe character varying(100), pontos integer, CONSTRAINT pk_formula1 PRIMARY KEY (posicao));INSERT INTO formula1 VALUES (1, 'FERNANDO ALONSO', 'FERRARI', 164);INSERT INTO formula1 VALUES (2, 'MARK WEBBER', 'RED BULL', 124);INSERT INTO formula1 VALUES (3, 'SEBASTIAN VETTEL', 'RED BULL', 122);INSERT INTO formula1 VALUES (4, 'LEWIS HAMILTON', 'MCLAREN', 117);INSERT INTO formula1 VALUES (5, 'KIMI RAIKKONEN', 'LOTUS', 116);INSERT INTO formula1 VALUES (6, 'NICO ROSBERG', 'MERCEDES BENZ', 77);INSERT INTO formula1 VALUES (7, 'JENSON BUTTON', 'MCLAREN', 76);INSERT INTO formula1 VALUES (8, 'ROMAIN GROSJEAN', 'LOTUS', 76);INSERT INTO formula1 VALUES (9, 'SERGIO PEREZ', 'SAUBER', 47);INSERT INTO formula1 VALUES (10, 'KAMUI KOBAYASHI', 'SAUBER', 33);Fazendo um simples select temos o seguinte resultado: posicao | piloto | equipe | pontos ---------+------------------+---------------+-------- 1 | FERNANDO ALONSO | FERRARI | 164 2 | MARK WEBBER | RED BULL | 124 3 | SEBASTIAN VETTEL | RED BULL | 122 4 | LEWIS HAMILTON | MCLAREN | 117 5 | KIMI RAIKKONEN | LOTUS | 116 6 | NICO ROSBERG | MERCEDES BENZ | 77 7 | JENSON BUTTON | MCLAREN | 76 8 | ROMAIN GROSJEAN | LOTUS | 76 9 | SERGIO PEREZ | SAUBER | 47 10 | KAMUI KOBAYASHI | SAUBER | 33Analisando os dados, imagine uma forma de inserir mais uma coluna que mostrara a soma de pontos por equipes. Poderia usar uma subquery:SELECT *, (SELECT SUM(pontos) FROM formula1 aux WHERE formula1.equipe = aux.equipe GROUP BY equipe) AS pontos_equipeFROM formula1ORDER BY posicaoPoderia usar uma function tambem, mas fica melhor com uma window function:SELECT *, SUM(pontos) OVER (PARTITION BY equipe) AS pontos_equipe FROM formula1ORDER BY posicao posicao | piloto | equipe | pontos | pontos_equipe ---------+------------------+---------------+--------+--------------- 1 | FERNANDO ALONSO | FERRARI | 164 | 164 2 | MARK WEBBER | RED BULL | 124 | 246 3 | SEBASTIAN VETTEL | RED BULL | 122 | 246 4 | LEWIS HAMILTON | MCLAREN | 117 | 193 5 | KIMI RAIKKONEN | LOTUS | 116 | 192 6 | NICO ROSBERG | MERCEDES BENZ | 77 | 77 7 | JENSON BUTTON | MCLAREN | 76 | 193 8 | ROMAIN GROSJEAN | LOTUS | 76 | 192 9 | SERGIO PEREZ | SAUBER | 47 | 80 10 | KAMUI KOBAYASHI | SAUBER | 33 | 80A chamada da funcao deve vir acompanhada da clausula OVER. E isto que determina quais linhas estarao disponiveis para o processamento da funcao. A outra instrucao, PARTITION BY, divide as linhas em grupos para que a funcao seja aplicada sobre elas. Tambem podemos definir a ordem que as linhas serao processadas pela funcao usando ORDER BY. A window function processa
as linhas independente da ordem em que estao sendo exibidas, portanto deve-se ter cuidado para que os dados sejam processados na ordem desejada. Suponhamos que queremos saber quem e o piloto numero 1 e 2 de cada equipe, sendo o numero 1 com a maior quantidade de pontos: SELECT *, row_number() OVER (PARTITION BY equipe ORDER BY posicao) AS numero_pilotoFROM formula1ORDER BY posicao posicao | piloto | equipe | pontos | numero_piloto ---------+------------------+---------------+--------+--------------- 1 | FERNANDO ALONSO | FERRARI | 164 | 1 2 | MARK WEBBER | RED BULL | 124 | 1 3 | SEBASTIAN VETTEL | RED BULL | 122 | 2 4 | LEWIS HAMILTON | MCLAREN | 117 | 1 5 | KIMI RAIKKONEN | LOTUS | 116 | 1 6 | NICO ROSBERG | MERCEDES BENZ | 77 | 1 7 | JENSON BUTTON | MCLAREN | 76 | 2 8 | ROMAIN GROSJEAN | LOTUS | 76 | 2 9 | SERGIO PEREZ | SAUBER | 47 | 1 10 | KAMUI KOBAYASHI | SAUBER | 33 | 2A ordenacao foi necessaria neste caso porque apesar da consulta ser ordenada pela posicao, a window function processa os dados de acordo com sua propria ordenacao. Nesta ultima query temos o uso da funcao row_number, que e uma window function embutida. Funcoes deste tipo devem ser chamadas somente usando a sintaxe da window function (onde a clausula OVER e obrigatoria). Tanto as funcoes embutidas quanto as de agregacao podem ser usadas como window functions, mas as de agregacao somente se comportam como window functions quando chamadas com a clausula OVER, caso contrario serao apenas funcoes de agregacao regulares. Outras funcoes embutidas podem ser encontradas aqui, mas vou apresentar algumas: lag(coluna, deslocamento) - Usada para retornar valores de linhas anteriores onde o deslocamento determina quantas linhas antes. lead(coluna, deslocamento) - Parecida com a funcao anterior, mas para linhas posteriores. first_value(coluna) - Retorna o valor da primeira linha. last_value(coluna) - Retorna o valor da ultima linha. E pra finalizar, caso uma query tenha mais de uma window function com o mesmo comportamento, e possivel utilizar uma clausula WINDOW que sera referenciada em OVER: SELECT *, row_number() OVER w AS numero_pilotoFROM formula1WINDOW w AS (PARTITION BY equipe ORDER BY posicao)ORDER BY posicaoReferencia: http://www.postgresql.org/docs/9.1/static/tutorial-window.html
propriedade column.Enfim, trabalhando desta forma voce nao precisara ficar escrevendo codigo para configurar o documento e limite de caracteres para cada campo de texto. Isto nao e problema se o projeto e simples, mas se estiver desenvolvendo varios formularios, nao e muito produtivo.Observacao: O metodo so funciona caso esteja trabalhando com JInternalFrames e caso nao esteja, pode haver alguma diferenca no metodo que retorna os componentes (this.getComponents). Se for um JDialog por exemplo, ficaria assim: this.getRootPane().getContentPane().getComponents().Por hoje e so! Qualquer duvida deixe nos comentarios.Editado em 17/12/2012:Devido a alguns JTextFields estarem dentro de JPanels e JTabbedPanes, desenvolvi um metodo recursivo que podera ser chamado dentro do metodo preparaForm citado anteriormente: private void preparaJTextFields(Object obj) { if (obj instanceof JTextField) { ((JTextField) obj).setDocument(new JTextFieldLimit(((JTextField) obj).getColumns(), true)); } if (obj instanceof JPanel) { for (Component c : ((JPanel) obj).getComponents()) { preparaJTextFields(c); } } if (obj instanceof JTabbedPane) { for (Component c : ((JTabbedPane) obj).getComponents()) { preparaJTextFields(c); } } } E a chamada pode ser feita assim: public void preparaForm() { //Centraliza o JInternalFrame Dimension d = this.getDesktopPane().getSize(); this.setLocation((d.width - this.getSize().width) / 2, (d.height - this.getSize().height) / 2); //JTextFields limitados preparaJTextFields(this.getContentPane()); }E aproveito ainda para mostrar como nao permitir acentuacao nos JTextFields, basta trocar a linha super.insertString(offset, str, attr); da classe JTextFieldLimit por: //super.insertString(offset, str, attr); // Sem acentosString unaccented = Normalizer.normalize(str, Normalizer.Form.NFD);unaccented = unaccented.replaceAll("[^\\p{ASCII}]", "");super.insertString(offset, unaccented, attr);
return fornecedores; }}As principais alteracoes a serem feitas sao nas constantes: NAMESPACE: Pode ser encontrado no arquivo wsdl, mas normalmente e "http://" + pacote + "/" METHOD_NAME: Mesmo nome dado a operacao SOAP_ACTION: NAMESPACE + METHOD_NAME URL: Endereco do arquivo wsdl (nos meus testes a conexao foi recusada quando utilizei localhost ou 127.0.0.1, portanto use o IP real da sua maquina) Com isto fica faltando o layout da aplicacao e a chamada do metodo. Para o layout utilize a seguinte definicao:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ListView></RelativeLayout>E para a classe principal utilize o seguinte codigo:public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Operacoes de rede nao podem ser realizadas na thread principal new MyAsyncTask().execute(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } private class MyAsyncTask extends AsyncTask<Void, Void, Fornecedor[]> { boolean erro = false; private final ProgressDialog dialog = new ProgressDialog( MainActivity.this); @Override protected void onProgressUpdate(Void... values) { this.dialog.setMessage("Aguarde..."); this.dialog.show(); } @Override protected Fornecedor[] doInBackground(Void... params) { Fornecedor[] retorno = null; try { ConexaoWS conexao = new ConexaoWS(); retorno = conexao.getFornecedores(); } catch (Exception e) { erro = true; e.printStackTrace(); } return retorno; } @Override protected void onPostExecute(Fornecedor[] result) { if (this.dialog.isShowing()) { this.dialog.dismiss(); } if (erro == false) { List<Fornecedor> listaFornecedores = Arrays.asList(result); ArrayAdapter<Fornecedor> adapter = new ArrayAdapter<Fornecedor>( MainActivity.this, android.R.layout.simple_list_item_1, listaFornecedores); setListAdapter(adapter); } else { Toast.makeText(MainActivity.this, "Ocorreu um erro ao acessar o Web Service.", Toast.LENGTH_LONG).show(); } } }}Se voce e leigo em programacao para Android, recomendo que procure entender como funcionam as classes ListActivity e AsyncTask para melhor compreensao do exemplo. O resultado da aplicacao sera este: Espero que tenham gostado. Qualquer duvida deixe nos comentarios.
exemplo chamei Thread.sleep(2000) apenas pra simular um procedimento rapido) e onPostExecute e executado quando doInBackground finalizar. E temos a variavel exception que e usada pelos metodos para descobrir se a operacao finalizou com sucesso.Qualquer duvida deixe nos comentarios!