PRÁTICA 9 – SPINNER
Objetivo:
Utilizar um spinner para gerar opções fixas
Introdução
spinner -> combo de opções fixas.
Tarefa:
Criar aplicações com spinner:
Programa 1 – Coloque estes valores em STRINGS.XML:
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Spinner</string> <string-array name="itens"> <item>UM</item> <item>DOIS</item> <item>TRES</item> </string-array> </resources> |
Programa 1 – Exemplo de spinner com itens de STRINGS.XML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:layout_margin="10dp" android:entries="@array/itens"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="ITEM SELECIONADO = ?" android:id="@+id/textView" android:layout_gravity="center_horizontal" /> </LinearLayout> |
Programa 1 – Populando spinner via código (pode-se remover a linha android:entries do layout):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.itens, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); } } |
Programa 2 – Respondendo à seleção do usuário:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.itens, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); final TextView textSelect = (TextView) findViewById(R.id.textView); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { textSelect.setText(String.valueOf(position)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } } |
Programa 3 – Programa calculadora de Código de cores STRINGS.XML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Código de cores</string> <string-array name="colorCodeTextNumeric"> <item>Preto (0)</item> <item>Marrom (1)</item> <item>Vermelho (2)</item> <item>Laranja (3)</item> <item>Amarelo (4)</item> <item>Verde (5)</item> <item>Azul (6)</item> <item>Violeta (7)</item> <item>Cinza (8)</item> <item>Branco (9)</item> </string-array> <string-array name="colorCodeTextMultiplier"> <item>Preto (x1)</item> <item>Marrom (x10)</item> <item>Vermelho (x100)</item> <item>Laranja (x1K)</item> <item>Amarelo (x10K)</item> <item>Verde (x100K)</item> <item>Azul (x1M)</item> <item>Violeta (x10M)</item> <item>Ouro (x0.1)</item> <item>Prata (x0.01)</item> </string-array> </resources> |
Programa 3 – Programa calculadora de Código de cores LAYOUT:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Faixa 1" android:id="@+id/textView2" android:layout_gravity="center_horizontal" android:layout_margin="10dp" /> <Spinner android:id="@+id/faixa1" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:layout_margin="10dp" android:entries="@array/colorCodeTextNumeric"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Faixa 2" android:id="@+id/textView3" android:layout_gravity="center_horizontal" android:layout_margin="10dp" /> <Spinner android:id="@+id/faixa2" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:layout_margin="10dp" android:entries="@array/colorCodeTextNumeric" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Faixa 3 - Multiplicador" android:id="@+id/textView4" android:layout_gravity="center_horizontal" android:layout_margin="10dp" /> <Spinner android:id="@+id/multiplicador" android:layout_width="match_parent" android:layout_height="wrap_content" android:spinnerMode="dropdown" android:layout_margin="10dp" android:entries="@array/colorCodeTextMultiplier" android:layout_gravity="center_horizontal" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Valor = ?" android:id="@+id/textView" android:layout_gravity="center_horizontal" /> </LinearLayout> |
Programa 3 – Código JAVA para o programa calculadora de código de cores:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener { TextView valorResult; Spinner spinnerFaixa1; Spinner spinnerFaixa2; Spinner spinnerFaixa3; int faixa1 = 0; int faixa2 = 0; int faixaMultiplicador = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinnerFaixa1 = (Spinner) findViewById(R.id.faixa1); spinnerFaixa2 = (Spinner) findViewById(R.id.faixa2); spinnerFaixa3 = (Spinner) findViewById(R.id.multiplicador); valorResult = (TextView) findViewById(R.id.textView); spinnerFaixa1.setOnItemSelectedListener(this); spinnerFaixa2.setOnItemSelectedListener(this); spinnerFaixa3.setOnItemSelectedListener(this); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.faixa1) { faixa1 = position; } if (parent.getId() == R.id.faixa2) { faixa2 = position; } if (parent.getId() == R.id.multiplicador) { faixaMultiplicador = (int) Math.pow(10,position); } int valorResultNumeric = (faixa1*10 + faixa2) * faixaMultiplicador; valorResult.setText("Resistor = " + String.valueOf(valorResultNumeric)+ " Ohms"); } @Override public void onNothingSelected(AdapterView<?> parent) { } } |
Desafio: Os multiplicadores OURO (x 0.1) e PRATA (x 0.01) não estão funcionando. Corrija o problema!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener { TextView valorResult; Spinner spinnerFaixa1; Spinner spinnerFaixa2; Spinner spinnerFaixa3; int faixa1 = 0; int faixa2 = 0; float faixaMultiplicador = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinnerFaixa1 = (Spinner) findViewById(R.id.faixa1); spinnerFaixa2 = (Spinner) findViewById(R.id.faixa2); spinnerFaixa3 = (Spinner) findViewById(R.id.multiplicador); valorResult = (TextView) findViewById(R.id.textView); spinnerFaixa1.setOnItemSelectedListener(this); spinnerFaixa2.setOnItemSelectedListener(this); spinnerFaixa3.setOnItemSelectedListener(this); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (parent.getId() == R.id.faixa1) { faixa1 = position; } if (parent.getId() == R.id.faixa2) { faixa2 = position; } if (parent.getId() == R.id.multiplicador) { faixaMultiplicador = (int) Math.pow(10,position); if (position == 8) { faixaMultiplicador = 0.1f; } if (position == 9) { faixaMultiplicador = 0.01f; } } float valorResultNumeric = (faixa1*10 + faixa2) * faixaMultiplicador; valorResult.setText("Resistor = " + String.format("%.2f",valorResultNumeric)+ " Ohms"); } @Override public void onNothingSelected(AdapterView<?> parent) { } } |