Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação para dispositivos moveis Fabiano Gonçalves dos Santos Aula 6 Como podemos inserir mais recursos no nosso app? http://www.elandroidelibre.com/wp-content/uploads/2012/08/question.png Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 2 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 3 Antes CheckBox RadioButton - Intro Agora RadioButton – App Spinner https://developer.android.com/guide/topics/ui/controls Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 4 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 5 <LinearLayoutxmlns: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“ android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin“ tools:context=".Principal" android:orientation="vertical"> <TextView android:text="@string/txt_questao" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20sp" android:textSize="24sp" android:textColor="#0000FF"/> 6 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 6 7 <RadioGroup android:id="@+id/rdgAlter" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/rdbA" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/rdb_a" android:textSize="22sp" android:checked="true"/> Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 7 <RadioButton android:id="@+id/rdbB" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/rdb_b" android:textSize="22sp"/> <RadioButton android:id="@+id/rdbC" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/rdb_c" android:textSize="22sp"/> <RadioButton android:id="@+id/rdbD" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/rdb_d" android:textSize="22sp"/> 8 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 8 <RadioButton android:id="@+id/rdbE" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/rdb_e" android:textSize="22sp"/> </RadioGroup> <Button android:id="@+id/btnOK" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn_ok" android:layout_marginTop="20sp" android:textSize="22sp" /> </LinearLayout> 9 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 9 Lógica Na mesma tela o usuário selecionará um das respostas Item escolhido exclui os demais Poderá exibir os temas selecionados Mostrará o tema escolhido Resultado da questão Lógica para validar 10 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 public class Principal extends Activity implementsView.OnClickListener,RadioGroup.OnCheckedChangeListener{ privateRadioGrouprdgAlter; private ButtonbtnOK; private final String CORRETA="E"; @Override protected voidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_principal); rdgAlter= (RadioGroup)findViewById(R.id.rdgAlter); btnOK= (Button)findViewById(R.id.btnOK); rdgAlter.setOnCheckedChangeListener(this); btnOK.setOnClickListener(this); } 12 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 12 @Override public voidonClick(View v) { String txt = ""; if (rdgAlter.getCheckedRadioButtonId() ==R.id.rdbE){ txt = "Parabéns,alternativacorreta!"; }else{ txt = "Vocênãoacertou,tentenovamente."; } AlertDialog.Builderdlg= newAlertDialog.Builder(this); dlg.setTitle(R.string.app_name); dlg.setMessage(txt); dlg.setPositiveButton("OK",null); dlg.show(); } 13 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 13 @Override public voidonCheckedChanged(RadioGroupgroup,intcheckedId) { //Retornaro TEXTO doRadioButtonselecionado RadioButtonrdb= (RadioButton)findViewById(group.getCheckedRadioButtonId()); Toast.makeText(this,rdb.getText(),Toast.LENGTH_SHORT).show(); } } 14 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 14 15 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 Controle para Exibição de Conjuntos Spinner DropDown (combobox) Definição estática no strings.xml Ou dinâmica (consulta à base de dados) AdapterView.OnItemSelectedListener Determina elemento selecionado 16 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 17 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 Lógica Clica na listagem e escolhe um nome Ou clica e escolhe uma cidade Após cadastro apresenta Caixa de Mensagem 18 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Cadastro</string> <string name="txt_cadastro">CadastrodePessoas</string> <string name="txt_nome">Nome</string> <string name="txt_cidade">Cidade</string> <string name="btn_cadastrar">Cadastrar</string> <string name="action_settings">Configurações</string> <string-array name="lista_nomes"> <item>Alexander Tanner</item> <item>Marsden Kirkland</item> <item>Brenden Swanson</item> <item>Caleb Odom</item> <item>Plato Baldwin</item> <item>Cadman Becker</item> 19 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 19 <item>Byron Sharpe</item> <item>NathanielBass</item> <item>Uriah Pate</item> <item>Wallace Day</item> <item>Elmo Woodard</item> <item>Lucius Evans</item> <item>Abdul Sexton</item> <item>Kelly Beach</item> <item>Richard Hardy</item> <item>Driscoll Adkins</item> <item>Tarik West</item> <item>Orson House</item> <item>Aaron Sparks</item> </string-array> </resources> 20 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 20 <LinearLayoutxmlns: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“ android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin“ tools:context=".Principal" android:orientation="vertical"> <TextView android:text="@string/txt_cadastro" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="24sp" android:textStyle="bold" /> 21 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 21 <TextView android:text="@string/txt_nome" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20sp" android:textSize="24sp"/> <Spinner android:id="@+id/spnNomes" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dialog" android:textSize="24sp" /> 22 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 22 <TextView android:text="@string/txt_cidade" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20sp" android:textSize="24sp"/> <Spinner android:id="@+id/spnCidades" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:textSize="24sp" /> 23 Programação para dispositivosmóveis Fabiano Gonçalves dos Santos Aula 6 23 <Button android:id="@+id/btnCadastrar" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/btn_cadastrar" android:layout_marginTop="20sp" android:textSize="24sp"/> </LinearLayout> 24 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 24 public class Principal extends Activity implementsView.OnClickListener,AdapterView.OnItemSelectedListener{ private SpinnerspnNomes; private SpinnerspnCidades; private ButtonbtnCadastrar; private List<String>listaCidadades; @Override protected voidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_principal); spnNomes= (Spinner)findViewById(R.id.spnNomes); spnCidades= (Spinner)findViewById(R.id.spnCidades); btnCadastrar= (Button)findViewById(R.id.btnCadastrar); spnNomes.setOnItemSelectedListener(this); spnCidades.setOnItemSelectedListener(this); btnCadastrar.setOnClickListener(this); carregarListaNomes(); carregarListaCidades(); } 25 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 25 // CARREGARlistadenomesdo RESOURCE private voidcarregarListaNomes(){ ArrayAdapter<CharSequence>adp=ArrayAdapter.createFromResource( this,R.array.lista_nomes, android.R.layout.simple_spinner_item); adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spnNomes.setAdapter(adp); } 26 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 26 // CARREGARlistadecidadesdo ARRAYLIST private voidcarregarListaCidades(){ listaCidadades= newArrayList<String>(); listaCidadades.add("Americana"); listaCidadades.add("Araraquara"); listaCidadades.add("Batatais"); listaCidadades.add("Campinas"); listaCidadades.add("Limeira"); listaCidadades.add("RibeirãoPreto"); listaCidadades.add("São Paulo"); ArrayAdapter<String>adp= newArrayAdapter<String>(this, android.R.layout.simple_spinner_item,listaCidadades); adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spnCidades.setAdapter(adp); } 27 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 27 @Override public voidonClick(View v) { if(v.getId() ==R.id.btnCadastrar){ AlertDialog.Builderdlg= newAlertDialog.Builder(this); dlg.setTitle(R.string.app_name); dlg.setMessage(""); dlg.setPositiveButton("OK",null); dlg.show(); } } @Override public voidonItemSelected(AdapterView<?> parent, Viewview,intposition, long id) { //Exibiritemselecionado String item =parent.getItemAtPosition(position).toString(); Toast.makeText(this,item,Toast.LENGTH_SHORT).show(); } 28 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 28 @Override public voidonNothingSelected(AdapterView<?> parent) { } } 29 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 29 30 Programação para dispositivos móveis Fabiano Gonçalves dos Santos Aula 6 Obrigado! 31
Compartilhar