Download Lecture 6 -- GUI Widget

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
GUI Widget Lecture6 Bu1on •  A clickable widget with a text label •  Key a1ributes: android:clickable=“true” android:id=“@+id/uniqueID” android:onClick=“funcJonName” android:text=“bu1onText” Event Handling -­‐-­‐ 1 /* *funcJon to call in acJvity when clicked *must be public, void, and take a View argument */ public void funcJonName(View view) [ } Event Handling -­‐-­‐ 2 In Java file: Bu1on firstBu1on = (Bu1on) findViewById(R.id.uniqueID); firstBu1on.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { …. } }); RadioBu1on •  A toggleable on/off switch; part of a group •  Key a1ributes: Android:checked=“true” set to true to make it iniJally checked android:clickable=“true” android:id=“@+id/uniqueID” android:onClick=“funcJonName” android:text=“bu1onText” RadioBu1on •  Need to be nested inside a RadioGroup tag in XML so that only one can be selected at a Jme <RadioGroup android:orienta4on="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioBu=on android:id="@+id/leo" android:onClick="pickTurtle" android:text="Leo" android:checked="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioBu=on android:id="@+id/mike" android:onClick="pickTurtle" android:text="Mike" android:layout_width="wrap_content" android:layout_height="wrap_content" /> … </RadioGroup> Reusing onClick handler MainAcJvity.java public class MainAcJvity extends AcJvity { // check which radio bu/on was clicked public void pickTurtle(View view) { if (view.getId() == R.id.leo) { … } else if (view.getId() == R.id.mike) { … } else if (view.getId() == R.id.don) { … } else if (view.getId() == R.id.raph) { … } } Spinner •  A drop-­‐down menu of selectable choices •  Key a1ributes: android:clickable=“true” if false, disable the spinner android:id=“@+id/uniqueID” android:entries=“@array/arrayName” opJons android:prompt=“@string/text” Jtle text String resources •  Declare constant strings and arrays in res/values/
strings.xml <?xml version="1.0" encoding="uM-­‐8"?> <resources> <string name=“bu1onText”> CLICK </string> <string-­‐array name=”arrayName"> <item>value1</item> <item>value2</item> <item>value3</item> </string-­‐array> </resources> Handler •  Refer to them in Java code: –  As a resource: R.string.name, R.array.name –  As a string or array: getResources().getString(R.string.name) getResources().getStringArray(R.array.name) •  Handle events: –  Must get the Spinner object using findViewById –  Then call its setOnItemSelectedListener method acJvity_main.xml <RelaJveLayout> <Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/unit_type_spinner" android:entries=“@array/conversionTypes” android:prompt=“@string/choose_type” android:layout_below="@+id/amount_text_view" android:layout_alignParentLeV="true" android:layout_alignParentStart="true"/> </RealJveLayout> strings.xml In res/values/strings.xml <?xml version="1.0" encoding="uM-­‐8"?> <resources> <string name=“choose_type”> Choose Conversion Type </
string> <string-­‐array name=”conversionTypes"> <item>Gallon</item> <item>Liter</item> <item>Cup</item> </string-­‐array> </resources> MainAcJvity.java public void addItemsToUnitTypeSpinner(){ // Get a reference to the spinner unitTypeSpinner = (Spinner) findViewById(R.id.unit_type_spinner); // Create an ArrayAdapter using the string array and a default spinner layout ArrayAdapter<CharSequence> unitTypeSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.conversionTypes, android.R.layout.simple_spinner_item); // Specify the layout to use when the list of choices appears unitTypeSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner
_dropdown_item); // Apply the adapter to the spinner unitTypeSpinner.setAdapter(unitTypeSpinnerAdapter); } MainAcJvity.java public void addListenerToUnitTypeSpinner() { unitTypeSpinner = (Spinner) findViewById(R.id.unit_type_spinner); unitTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3) { // Get the item selected in the Spinner String itemSelectedInSpinner = parent.getItemAtPosiJon(pos).toString(); … } public void onNothingSelected(AdapterView<?> arg0) { // TODO maybe add something here later } }); } 
Related documents