quinta-feira, setembro 12, 2013

Erro java.lang.NumberFormatException: NaN no Android

HI,

O problema aconteceu nessa função para arredondar as casas decimais de um número que utilizo no android

public static double round(double d, int decimalPlace){ 
  // see the Javadoc about why we use a String in the constructor
  // http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html#BigDecimal(double)
  BigDecimal bd = new BigDecimal(Double.toString(d));
  bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
  return bd.doubleValue();
}

Fui utilizar e a aplicação deu esse erro java.lang.NumberFormatException: NaN

Pesquisando, descobrir que era por que na primeira utilização da rotina o resultado era zero. É uma rotina para calcular a distância em metros de duas coordenadas. E eu só vou gravar se for maior que dez.

Resolvi testando se antes o valor era zerado

  double aux_metros = 0;
   
  if ((6366000*tt) > 0){
    aux_metros = round(6366000*tt, 2);
  }


Achei aqui a causa do problema

Exception in thread “main” java.lang.NumberFormatException: Infinite or NaN
http://stackoverflow.com/questions/14371003/exception-in-thread-main-java-lang-numberformatexception-infinite-or-nan/14371028#14371028



Fiquem na Paz!!!

quarta-feira, setembro 11, 2013

Esconder um botão no Android

HI,

Antes de conhecer essa dica eu apenas desabilitava o componente, Enable=false, mas agora o componente some da tela, fica invisível.

Achei aqui

How can I remove a button or make it invisible in Android?
http://stackoverflow.com/questions/4127725/how-can-i-remove-a-button-or-make-it-invisible-in-android/4127830#4127830


Set button visibility to GONE (button will be completely "removed" -- the buttons space will be available for another widgets) or INVISIBLE (button will became "transparent" -- its space will not be available for another widgets):
View b = findViewById(R.id.button);
b.setVisibility(View.GONE);
or in xml:


Se utilizar a opção INVISIBLE, o botão não some da tela, fica apenas transparente.

Não serve apenas para o botão.

Fiquem na Paz

quinta-feira, setembro 05, 2013

Instalando o Zeos Lib (mysql) no Delphi 7

HI,

Já tinha a um versão do ZeosLib instalada no meu Delphi 7, mas resolvi atualizar para conectar o banco mysql onde meu site está hospedado.

Utilizei essa página para instala-lo.

Zeos (mysql) no Delphi 7
http://marciorossato.meucanal.com.br/zeos-mysql-no-delphi-7/


Mas não foi essa moleza toda. Para configurar o componente tiver que achar uma dll compatível com o banco de dados aqui no meu notebook. A dll libmysql que estava na pasta bin da instalação do MySql não serviu. Usei a que estava na pasta do MySQL Workbench que eu havia instalado aqui.

A libmysql.dll é atribuída na propriedade LibraryLocation do componente de conexão.

Fiquem na Paz!!!

The message received from the server could not be parsed

HI,

Pense num problema que deu dor de cabeça.

No meu caso o problema foi por causa que implementei uma rotina para gerar um arquivo pdf para download usando o Crystal Reports.

Esse é o trecho código para gerar o relatório no formato PDF para download
// Stop buffering the response
Response.Buffer = false;
// Clear the response content and headers
Response.ClearContent();
Response.ClearHeaders();
// Export the Report to Response stream in PDF format and file name Customers
cryRpt.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "ocorrencia_id" + _codigosoc);
// There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports



O problema é que esse código dá conflito com o Ajax do Asp.Net.

A solução é registrar o componente  que está acionando o código em questão

ScriptManager.GetCurrent(this).RegisterPostBackControl(btImprimir);

Utilizar esse comando no Page_Load.



Fiquem na Paz!!!

quarta-feira, setembro 04, 2013

Detectando ser o browser está com foco ou minimizado utilizando javascript

HI,

Precisei implementar esse código em um exemplo de chat que estou modificando. Foi para executar um som ao chegar mensagem caso ele esteja sem o foco ou minimizado.

Utilizei esse código

var isactive = false;

function playSound(){
    if (isactive) return;
    playWav...;
}

onNotificaitonComes = playSound;

$(window).focus(function(){
    isactive = true;
}).blur(function(){
    isactive = false;
});


Quando o browser perder o foco a variável isactive vai receber false.

Achei aqui

How to play a notification alert sound when the browser window is minimized and when a notification comes from the server
http://stackoverflow.com/questions/12653370/how-to-play-a-notification-alert-sound-when-the-browser-window-is-minimized-and/12653751#12653751


Mais sobre Focus/Blur

Focus/blur methods and events
http://javascript.info/tutorial/focus



Fiquem na Paz!!!

Executar arquivo de áudio com o HTML5

HI,

Estou me aventurando agora a aprender o SignalR e no aprendizado estou modificando um exemplo de chat que peguei. Decidi incluir um recurso de executar um som quando chegar uma nova mensagem privada ou se o navegador estiver minimizado ou sem o foco.

Para executar um arquivo de áudio usei essa dica

Sound effects in JavaScript / HTML5
http://stackoverflow.com/questions/1933969/sound-effects-in-javascript-html5/1934325#1934325


Coloquei pra tocar o som do ICQ, hehehe
http://www.4shared.com/mp3/XTfFeHVi/ICQ_message_sound.html



Fiquem na Paz!!!

Manipular o atributo Class de um elemento HTML do lado servidor no Asp.Net

HI,

Precisei adicionar uma classe a uma tag li de acordo com o tipo de um determinado campo em um componente de repetição do Asp.Net.

Exemplo: Se o campo tivesse valor F o class deveria ser comment senão deveria ser comment reply.

Na parte visual coloquei a tag li como sendo runnet="server"
< li id="li_tipo_resposta" runat="server" >

E no ItemDataBound do controle Repeater coloquei esse código

protected void repeatRespostas_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        string _tipo_resposta = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "tipo_resposta"));
        if (_tipo_resposta.Equals("F"))
        {
            ((HtmlControl)e.Item.FindControl("li_tipo_resposta")).Attributes.Add("class", "comment");
        }
        else
        {
            ((HtmlControl)e.Item.FindControl("li_tipo_resposta")).Attributes.Add("class", "comment reply");
        }
    }
}

A tag é localizada e seu atributo Class é adicionado.


Implementei esse código com base nessa página

C# - How to change HTML elements atributes
http://stackoverflow.com/questions/186918/c-sharp-how-to-change-html-elements-attributes/10795178#10795178


Fiquem na Paz!!!!

segunda-feira, setembro 02, 2013

Criar um diálogo sem a barra de título no Android

HI,

Precisei fazer isso pra ganhar um pouco de espaço pra colocar mais um componente.

Para não exibir o título no diálogo:
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

Achei aqui:

Android: How to create a Dialog without a title?
http://stackoverflow.com/questions/2644134/android-how-to-create-a-dialog-without-a-title/3407871#3407871


Fiquem na Paz!!!