Android – Chamando o onActivityResult em Fragment (onActivityResult not called in fragment)

Android minimizar

Quando estamos utilizando o Fragment normalmente precisamos de uma instancia da Activity para realizar qualquer tipo de solução, com isso chamamos o getActivity().

Más não devemos chama-la para iniciar uma atividade pois o getActivity é referente ao FragmentActivity.

Forma correta (chama o onActivityResult da fragment):

this.startActivityForResult(intent,1);

Errado (chama o onActivityResult da FragmentActivity):

getActivity().startActivityForResult(intent,1);

Android – Inserindo barra de busca na action bar (Add the Search View to the Action Bar)

SearchView

 

Pesquisa é uma característica central do usuário Android. Os usuários devem ser capazes de pesquisar os dados que está disponível para eles, independente se o conteúdo está localizado no dispositivo ou na Internet. Para ajudar a criar uma experiência de pesquisa consistente para os usuários, o Android oferece uma estrutura de busca que ajuda você a implementar a pesquisa para sua aplicação.

Neste Exemplo vamos aprender como inserir o Widget na ActionBar do sistema, nada mais. Vou mostrar exemplos para inseri-lo utilizando o SearchView API 11> e o SearchView da biblioteca de suporte v7.  Vamos ver nos passos a seguir: Continue reading

Android – Como exibir o menu de opções no Fragment (How can use onCreateOptionsMenu in a Fragment)

options menu

O procedimento é o mesmo, sobrescrevemos o onCreateOptionMenu e inflamos nosso menu do resources, porem temos que adicionar somente uma linha de código a mais, no fragment vamos sobrescrever o método onCreate() vamos inserir:

Continue reading

Android – Definindo uma cor de fundo para todas as telas (how to set background color of all screens?)

UniqueID

Caso você queira personalizar a cor de fundo de todas suas telas basta definir o atributo android:windowBackground no seu Style.

Exemplo:

#FF00F0F0

O Atributo colorBackground permite que você insira a cor de forma literal, já o windowBackground só aceita a cor de um resource (como definido a tag color no exemplo acima). Não há a necessidade de definir os dois atributos.

Veja mais em: Styles and Themes

Android – Implementando corretamente o botão voltar na ActionBar (Providing Up Navigation)

navigation up action bar

Todas as telas em seu aplicativo que não são a entrada principal para o seu aplicativo (a tela “home”) deve oferecer ao usuário uma maneira de navegar para a tela pai lógica na hierarquia do aplicativo pressionando o botão Up na Action Bar . Esta lição mostra como implementar adequadamente esse comportamento.

Os conceitos e princípios para a navegação acima são descritos em Designing Effective Navigation e em Navigation  guia de design. É muito importante ler esse conceito para aprender a forma correta da utilização do Navigation UP, tenha em mente que ele não é como o nosso botão de voltar do Sistema Operacional, o comportamento dele deve ser visto de outra maneira.

Resumindo, o botão up deve navegar entre as telas de forma hierárquica já o botão voltar em ordem cronológica inversa.

Exemplo: Continue reading

Android – Empilhando Fragments para navegação.(navigate backward through the fragment transactions)

android_activity_fragment

Tenha em mente que quando você executa transações de fragments, tais como substituir ou remover um, muitas vezes é apropriado permitir que o usuário navegue para trás para “desfazer” a mudança.

Para permitir que o usuário navegue para trás através das operações de fragmentos, você deve chamar o addToBackStack()  antes de dar commit no FragmentTransaction.

getFragmentManager().beginTransaction()
	.replace(R.id.content_frame, new FragConsulta2())
	.addToBackStack(null)
	.commit();

Quando você  substitui um fragment e adiciona a transação para a pilha de volta (addToBackStack), o fragmento que é retirado é parado (não destruído). Se o usuário navega de volta o fragment anterior é reiniciado. Se você não adicionar a transação para a pilha de volta, em seguida, o fragment é destruído quando for substituído.

Caso haja a necessidade de “limpar” a pilha, ou seja estourar todos os backStack basta executar:

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.popBackStack();

Android – Como fazer o ListView do Instagram (Instagram ListView)

Instagram_ListView

O ListView do Instagram tem um efeito de rolagem muito interessante, conforme rolamos a lista o ‘cabeçalho’ de cada item fica fixo até o cabeçalho do próximo item chegar e tomar o seu lugar (conforme a imagem acima).

O Segredo está no item da lista e na implementação da interface  AbsListView.OnScrollListener para escutarmos a rolagem da lista.

Vamos criar um item da lista, com um título e conteúdo. O título deve estar acima do conteúdo, portanto, ele deve ser o último elemento em uma RelativeLayout . Além disso, a criação android:layout_alignParentTop em título iria tentar aplicar a regra sempre que os parâmetros de layout mudar. Por isso, é melhor não adicionar a regra:

Continue reading

Android – Monitorar o status de conectividade (Monitoring the Connectivity Status)

android_hotspot

Alguns dos usos mais comuns para alarmes e serviços de fundo é agendar atualizações regulares de dados e recursos da Internet ou executar downloads.

Você pode usar o ConnectivityManager para verificar se você está realmente conectado à Internet, e em caso afirmativo, qual o tipo de conexão.

Primeiramente lembre-se de inserir a seguinte permissão em seu Manifest.xml:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Abaixo vamos ver 3 exemplos,  verificar se existe conexão, o tipo e o status. Continue reading

Android – Problemas ao executar adb no Ubuntu 64bits (Android adb not found / error=2 No such file or directory / Unable to run mksdcard SDK tool)

android minimize

Unexpected exception 'Cannot run program "/adt-bundle-linux/sdk/platform-tools/adb": error=2, No such file or directory' while attempting to get adb version from '/adt-bundle-linux/sdk/platform-tools/adb'

Unable to run mksdcard SDK tool

Provavelmente ao instalar o Android no Ubuntu 64bits você vai se deparar com algum erro para executar o ADB ou o Emulador.

O problema é que o Android necessita de algumas bibliotecas 32bits para rodar o ADB. Para solucionar esse problema basta executar em seu terminal o seguinte comando:

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1

Esse comando foi testado no Ubuntu 13.04 e 13.10.

Android – Filtrando dados de um ListView com um EditText (How to Filter ListView through EditText)

filter_listview_edittext_android

Quando nos deparamos com vários conteúdos em uma lista, a pesquisa sempre fica mais difícil. O Android nos proporciona uma classe chamada Filter que se responsabiliza em tratar o filtro.
Operações de filtragem realizado pelo Filter são realizadas de forma assíncrona. Quando esses métodos são chamados, um pedido de filtragem é postado em uma fila de pedidos e processados ​​mais tarde. Qualquer chamada para um desses métodos irá cancelar qualquer pedido de filtragem não executada anterior.
Abaixo veremos a utilização desse recurso: Continue reading