Android Example Code
From Klaus' wiki
package com.kolle.meterreading; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class Tab1Activity extends Activity { /** * @see android.app.Activity#onCreate(Bundle) */ DbAdapter dba; Spinner spinner; EditText eView; TextView label; String selItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab1intent); // Create an instance of the database adapter and open the database dba = new DbAdapter(this); dba.open(); // Will be closed in the onPause setSpinner(); // Get an instance of the buttons Button button_log = (Button) findViewById(R.id.button_log01); Button button_clear = (Button) findViewById(R.id.button_clear01); Button button_edit = (Button) findViewById(R.id.button_edit); // Create a listener button_log.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (selItem == getString(R.string.noMeters)) { Toast.makeText(Tab1Activity.this, "There is no meteres in the database.", Toast.LENGTH_LONG).show(); return; } if (selItem.length() == 0) { // Don't log nothing! Toast.makeText(Tab1Activity.this, "First select a meter...", Toast.LENGTH_LONG).show(); return; } dba.open(); Log.d("meterReading", "Tab1Activity.button_log: onClick"); eView = (EditText) findViewById(R.id.reading01); String reading = eView.getText().toString(); if (reading.length() == 0) { // Don't log nothing! Toast.makeText(Tab1Activity.this, "No reading entered...", Toast.LENGTH_LONG).show(); return; } Log.d("meterReading", "Tab2Activity.button_create: onClick logging for meter=" + selItem + ", reading=" + reading); dba.addMeter(selItem, reading); Toast.makeText(Tab1Activity.this, "Logging stored", Toast.LENGTH_LONG).show(); eView.setText(""); label.setText(""); dba.close(); return; } }); // Create a listener button_clear.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.d("meterReading", "Tab1Activity.button_clear: onClick"); eView = (EditText) findViewById(R.id.reading01); if (eView.getText().toString().length() == 0) { // Nothing to clear... Toast.makeText(Tab1Activity.this, "Nothing to clear...", Toast.LENGTH_LONG).show(); return; } eView.setText(""); // Do something reasonable with the selection label = (TextView) findViewById(R.id.last_reading01); label.setText(dba.getLastReading(selItem)); Toast.makeText(Tab1Activity.this, "Try agin", Toast.LENGTH_LONG).show(); return; } }); button_edit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (selItem == getString(R.string.noMeters)) { Toast.makeText(Tab1Activity.this, "There is no meteres in the database.", Toast.LENGTH_LONG).show(); return; } Toast.makeText(Tab1Activity.this, "Comming - patience please...", Toast.LENGTH_LONG).show(); } }); } private void setSpinner() { Log.d("meterReading", "Tab1Activity: Creating an instance of the spinner."); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Log.d("meterReading", "Tab1Activity: Creating an instance of the DbAdapter."); // Set the first page selection box (spinner) // Get a cursor from the database Cursor c = dba.getAllMeters(); Log.d("meterReading", "Tab1Activity: Received a cursor from getAllMeters."); // Check if the cursor points to any records if (!c.moveToFirst()) { // It doesn't Log.d("meterReading", "Tab1Activity: No meters in database."); // noMeters is defined in res.values.strings.xml adapter.add(getString(R.string.noMeters)); } else { // It do - insert the list into the spinner do { Log.d("meterReading", "Tab1Activity: Adding one meter to the list."); adapter.add(c.getString(1)); } while (c.moveToNext()); } // Display the spinner // adapter // .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Log.d("meterReading", "Tab1Activity: Changing the adapter"); spinner = (Spinner) findViewById(R.id.meters01); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); Log.d("meterReading", "Tab1Activity: Changed the adapter"); } protected void onResume() { super.onResume(); dba.open(); setSpinner(); } protected void onPause() { super.onPause(); Log.d("meterReading", "Tab1Activity: onPause"); // Close the database when this tab is no longer visible dba.close(); } public class MyOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { label = (TextView) findViewById(R.id.last_reading01); Log.d("meterReading", "Tab1Activity: onItemSelected"); selItem = parent.getItemAtPosition(pos).toString(); // Do something reasonable with the selection String lastReading = dba.getLastReading(selItem); label.setText(lastReading); } public void onNothingSelected(AdapterView<?> parent) { Log.d("meterReading", "Tab1Activity: onNothingSelected"); // Do nothing // Well maybe later clear some fields or something like that } } }