settings, shared intent, send broadcast
DESCRIPTION
Apresentação para o terceiro meetup Android do GDG João Pessoa.TRANSCRIPT
Settings, Share Intent.Não reivente a roda!
● Engenharia da Computação;● Entusiasta Tecnológico;● Manager BlackBerry;● Organizer GDG;● Prêmios:
○ Space Apps Challenge NASA 2013;○ Chrome Apps Challenge GDG-SP;○ Startup Jam World 2013;
Silas Monteiro Limeira
Settings
Settings
Quando o usuário salva algo nas preferências (settings), esse valor fica salvo no arquivo
(SharedPreferences). Onde armazena informações em chaves de dados primitivos.
EXEMPLO?
Settings
Settings1. Criar um SettingsActivity;
a. Use uma classe PreferenceActivity;2. Atualize o AndroidManifest para declarar a
SettingsActivity;
Versão Simplificada: goo.gl/8YPft1Android Developers: goo.gl/yz8uz2
Settings1. Coloque o SettingsActivity para aparecer no MainActivity e no
DetailActivity;
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { StartActivity(new Intent(this, SettingsActivity.class)); return true; } return super.onOptionsItemSelected(item); }
Settings1. Crie um arquivo(XML) chamado pref_general.xml com
<PreferenceScreen>.2. Add EditTextPreference para configurações da
Localização;3. Adicione Strings no strings.xml;
Veja exemplo de <PreferenceScreen> aqui: goo.gl/CN5uXu
Settings1. Carregue o XML layout do SettingsActivity com o
addPreferencesFromResource(R.xml.pref_general);
2. Conectar as preferências de localização com o bindPreferenceSummaryToValue(findPreference(getString(R.string.pref_location_key));
Settings
❏ Faça o mesmo para mudar as unidades métricas.
Abrindo o Maps
❏ Add no arquivo de menu da tela principal outro item (maps);
❏ Na Activity principal vamos chamar o maps;
Maps
Maps private void openPreferredLocationInMap() {
String location = Utility.getPreferredLocation(this);
Uri geoLocation = Uri.parse("geo:0,0?").buildUpon()
.appendQueryParameter("q", location)
.build();
Intent viewOnMapIntent = new Intent(Intent.ACTION_VIEW);
viewOnMapIntent.setData(geoLocation);
if (viewOnMapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(viewOnMapIntent);
} else {
Log.e(LOG_TAG, "Couldn't open map to location: " + location + ", no available Intent");
}
}
Shared Intent
❏ Compartilhar um conteúdo é uma das ações mais comuns entre usuários mobile;
❏ Para compartilhar fotos, textos, videos, músicas, não precisamos nem saber quais os aplicativos favoritos do usuário;
❏ Apenas diga ao Android qual conteúdo você quer compartilhar e ele vai listar os aplicativos que podem compartilhar;
Send Intent
Shared Intent1. Criem um novo arquivo de menu chamado
detailFragment;2. Add um ShareActivityProvider em DetailActivity;3. Add um texto para compartilhar junto exemplo #gdgjp;