event manager

General topics about the Android-Platform itself.
Coding issues please to the subforum right below.

event manager

Postby androidbeginner » Wed Feb 27, 2008 7:13 am

hello.. iam trying to write an application similar to the notepad application but with a date input added..but my application doesnt display the list when returned from the subactivity..it says "no notes"..can u just see where am i going wrong...heres my code..



Example1.java

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package android.examples;
  2.  
  3.  
  4.  
  5. import java.util.ArrayList;
  6.  
  7. import java.util.List;
  8.  
  9.  
  10.  
  11. import android.app.ListActivity;
  12.  
  13. import android.content.Intent;
  14.  
  15. import android.os.Bundle;
  16.  
  17. import android.view.Menu;
  18.  
  19. import android.view.View;
  20.  
  21. import android.view.Menu.Item;
  22.  
  23. import android.widget.ArrayAdapter;
  24.  
  25. import android.widget.ListView;
  26.  
  27.  
  28.  
  29. import bhuvana.android.examples.DBHelper.Row;
  30.  
  31.  
  32.  
  33. public class Example1 extends ListActivity
  34.  
  35. {
  36.  
  37.     private static final int ACTIVITY_CREATE=0;
  38.  
  39.     private static final int ACTIVITY_EDIT=1;
  40.  
  41.     public static final String KEY_TITLE = "title";
  42.  
  43.     public static final String KEY_BODY = "body";
  44.  
  45.     public static final String KEY_ROW_ID = "rowid";
  46.  
  47.    
  48.  
  49.     private static final int INSERT_ID = Menu.FIRST;
  50.  
  51.     private static final int DELETE_ID = Menu.FIRST + 1;
  52.  
  53.  
  54.  
  55.     private DBHelper dbHelper;
  56.  
  57.    
  58.  
  59.     private List<Row> rows;
  60.  
  61.  
  62.  
  63.     /** Called when the activity is first created. */
  64.  
  65.     @Override
  66.  
  67.     public void onCreate(Bundle icicle)
  68.  
  69.     {
  70.  
  71.         super.onCreate(icicle);
  72.  
  73.         setContentView(R.layout.notes_list);
  74.  
  75.         dbHelper = new DBHelper(this);
  76.  
  77.         fillData();
  78.  
  79.     }
  80.  
  81.    
  82.  
  83.     private void fillData() {
  84.  
  85.         // We need a list of strings for the list items
  86.  
  87.         List<String> items = new ArrayList<String>();
  88.  
  89.  
  90.  
  91.         // Get all of the rows from the database and create the item list
  92.  
  93.         rows = dbHelper.fetchAllRows();
  94.  
  95.         for (Row row : rows) {
  96.  
  97.             items.add(row.title);
  98.  
  99.         }
  100.  
  101.        
  102.  
  103.         // Now create an array adapter and set it to display using our row
  104.  
  105.         ArrayAdapter<String> notes =
  106.  
  107.             new ArrayAdapter<String>(this, R.layout.notes_row, items);
  108.  
  109.         setListAdapter(notes);
  110.  
  111.     }
  112.  
  113.    
  114.  
  115.     @Override
  116.  
  117.     public boolean onCreateOptionsMenu(Menu menu) {
  118.  
  119.         super.onCreateOptionsMenu(menu);
  120.  
  121.         menu.add(0, INSERT_ID, R.string.menu_insert);
  122.  
  123.         menu.add(0, DELETE_ID, R.string.menu_delete);
  124.  
  125.         return true;
  126.  
  127.     }
  128.  
  129.  
  130.  
  131.     @Override
  132.  
  133.     public boolean onMenuItemSelected(int featureId, Item item) {
  134.  
  135.         super.onMenuItemSelected(featureId, item);
  136.  
  137.         switch(item.getId()) {
  138.  
  139.         case INSERT_ID:
  140.  
  141.             createNote();
  142.  
  143.             break;
  144.  
  145.         case DELETE_ID:
  146.  
  147.             dbHelper.deleteRow(rows.get(getSelection()).rowId);
  148.  
  149.             fillData();
  150.  
  151.             break;
  152.  
  153.         }
  154.  
  155.        
  156.  
  157.         return true;
  158.  
  159.     }
  160.  
  161.  
  162.  
  163.     private void createNote() {
  164.  
  165.         Intent i = new Intent(this, NoteEdit.class);
  166.  
  167.         startSubActivity(i, ACTIVITY_CREATE);
  168.  
  169.     }
  170.  
  171.    
  172.  
  173.     @Override
  174.  
  175.     protected void onListItemClick(ListView l, View v, int position, long id) {
  176.  
  177.         super.onListItemClick(l, v, position, id);
  178.  
  179.  
  180.  
  181.         Intent i = new Intent(this, NoteEdit.class);
  182.  
  183.         i.putExtra(KEY_ROW_ID, rows.get(position).rowId);
  184.  
  185.         startSubActivity(i, ACTIVITY_EDIT);
  186.  
  187.     }
  188.  
  189.  
  190.  
  191.     @Override
  192.  
  193.     protected void onActivityResult(int requestCode, int resultCode, String data, Bundle extras) {
  194.  
  195.         super.onActivityResult(requestCode, resultCode, data, extras);
  196.  
  197.         fillData();
  198.  
  199.     }
  200.  
  201. }
  202.  
  203.  
Parsed in 0.043 seconds, using GeSHi 1.0.8.4


NoteEdit.java

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package android.examples;
  2.  
  3.  
  4.  
  5. import java.util.Calendar;
  6.  
  7.  
  8.  
  9.  
  10.  
  11. import android.app.Activity;
  12.  
  13. import android.app.TimePickerDialog;
  14.  
  15. import android.os.Bundle;
  16.  
  17. import android.view.View;
  18.  
  19. import android.widget.Button;
  20.  
  21. import android.widget.EditText;
  22.  
  23. import android.widget.TextView;
  24.  
  25. import android.widget.TimePicker;
  26.  
  27.  
  28.  
  29. public class NoteEdit extends Activity {
  30.  
  31.  
  32.  
  33.     private EditText titleText;
  34.  
  35.     private EditText bodyText;
  36.  
  37.     private EditText subtitleText;
  38.  
  39.     private TextView DateDisplay;
  40.  
  41.     private Long rowId;
  42.  
  43.     private int myhour;
  44.  
  45.     private int myminute;
  46.  
  47.     private DBHelper dbHelper;
  48.  
  49.    
  50.  
  51.     @Override
  52.  
  53.     protected void onCreate(Bundle icicle) {
  54.  
  55.         super.onCreate(icicle);
  56.  
  57.        
  58.  
  59.         dbHelper = new DBHelper(this);
  60.  
  61.        
  62.  
  63.         setContentView(R.layout.note_edit);
  64.  
  65.        
  66.  
  67.         titleText = (EditText) findViewById(R.id.title);
  68.  
  69.         bodyText = (EditText) findViewById(R.id.body);
  70.  
  71.         subtitleText = (EditText) findViewById(R.id.subtitle);
  72.  
  73.         DateDisplay=(TextView) findViewById(R.id.dateDisplay);
  74.  
  75.         Button confirmButton = (Button) findViewById(R.id.confirm);
  76.  
  77.         Button picktime = (Button) findViewById(R.id.pickTime);
  78.  
  79.         rowId = icicle != null ? icicle.getLong(Example1.KEY_ROW_ID) : null;
  80.  
  81.         if (rowId == null) {
  82.  
  83.             Bundle extras = getIntent().getExtras();            
  84.  
  85.             rowId = extras != null ? extras.getLong(Example1.KEY_ROW_ID) : null;
  86.  
  87.         }
  88.  
  89.        
  90.  
  91.         populateFields();
  92.  
  93.        
  94.  
  95.         final Calendar c = Calendar.getInstance();
  96.  
  97.        
  98.  
  99.         myhour = c.get(Calendar.HOUR_OF_DAY);
  100.  
  101.         myminute = c.get(Calendar.MINUTE);
  102.  
  103.  
  104.  
  105.         updateDisplay();
  106.  
  107.        
  108.  
  109.         confirmButton.setOnClickListener(new View.OnClickListener() {
  110.  
  111.  
  112.  
  113.             public void onClick(View arg0) {
  114.  
  115.                 setResult(RESULT_OK);
  116.  
  117.                 finish();
  118.  
  119.             }
  120.  
  121.            
  122.  
  123.         });
  124.  
  125.        
  126.  
  127.         picktime.setOnClickListener(new View.OnClickListener() {
  128.  
  129.  
  130.  
  131.             public void onClick(View v) {
  132.  
  133.                 new TimePickerDialog(NoteEdit.this,
  134.  
  135.                         mTimeSetListener, "Set the time",
  136.  
  137.                         myhour, myminute, false).show();
  138.  
  139.             }
  140.  
  141.         });
  142.  
  143.     }
  144.  
  145.  
  146.  
  147.     private void populateFields() {
  148.  
  149.         if (rowId != null) {
  150.  
  151.             DBHelper.Row row = dbHelper.fetchRow(rowId);
  152.  
  153.             if (row.rowId > -1) {
  154.  
  155.                 titleText.setText(row.title);
  156.  
  157.                 bodyText.setText(row.body);  
  158.  
  159.                 subtitleText.setText(row.subtitle);
  160.  
  161.                 myhour=row.hour;
  162.  
  163.                 myminute=row.minute;
  164.  
  165.             }            
  166.  
  167.         }
  168.  
  169.     }
  170.  
  171.  
  172.  
  173.         @Override
  174.  
  175.         protected void onFreeze(Bundle outState) {
  176.  
  177.                 super.onFreeze(outState);
  178.  
  179.         outState.putLong(Example1.KEY_ROW_ID, rowId);
  180.  
  181.         }
  182.  
  183.  
  184.  
  185.         @Override
  186.  
  187.         protected void onPause() {
  188.  
  189.                 super.onPause();
  190.  
  191.         saveState();
  192.  
  193.         dbHelper.close();
  194.  
  195.         dbHelper = null;
  196.  
  197.         }
  198.  
  199.  
  200.  
  201.         @Override
  202.  
  203.         protected void onResume() {
  204.  
  205.                 super.onResume();
  206.  
  207.         if (dbHelper == null) {
  208.  
  209.             dbHelper = new DBHelper(this);
  210.  
  211.         }
  212.  
  213.         populateFields();
  214.  
  215.         }
  216.  
  217.    
  218.  
  219.         private void saveState() {
  220.  
  221.         String title = titleText.getText().toString();
  222.  
  223.         String body = bodyText.getText().toString();
  224.  
  225.         String subtitle = titleText.getText().toString();
  226.  
  227.        
  228.  
  229.         int sethour=myhour;
  230.  
  231.         int setminute=myminute;
  232.  
  233.         if (rowId == null) {
  234.  
  235.             dbHelper.createRow(title, body, subtitle,sethour,setminute);
  236.  
  237.         } else {
  238.  
  239.             dbHelper.updateRow(rowId, title, body, subtitle,sethour,setminute);
  240.  
  241.         }
  242.  
  243.     }
  244.  
  245.          private TimePicker.OnTimeSetListener mTimeSetListener =
  246.  
  247.          new TimePicker.OnTimeSetListener() {
  248.  
  249.  
  250.  
  251.              public void timeSet(TimePicker view, int hourOfDay, int minute) {
  252.  
  253.                  myhour = hourOfDay;
  254.  
  255.                  myminute = minute;
  256.  
  257.                  updateDisplay();
  258.  
  259.              }
  260.  
  261.          };
  262.  
  263.          private void updateDisplay() {
  264.  
  265.              DateDisplay.setText(
  266.  
  267.                  new StringBuilder()
  268.  
  269.                          
  270.  
  271.                          .append(pad(myhour)).append(":")
  272.  
  273.                          .append(pad(myminute)));
  274.  
  275.          }
  276.  
  277.        private static String pad(int c) {
  278.  
  279.              if (c >= 10)
  280.  
  281.                  return String.valueOf(c);
  282.  
  283.              else
  284.  
  285.                  return "0" + String.valueOf(c);
  286.  
  287.          }
  288.  
  289.      
  290.  
  291. }
Parsed in 0.048 seconds, using GeSHi 1.0.8.4


DBHelper.java

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package android.examples;
  2.  
  3.  
  4.  
  5. import java.io.FileNotFoundException;
  6.  
  7. import java.util.ArrayList;
  8.  
  9. import java.util.List;
  10.  
  11.  
  12.  
  13. import android.content.ContentValues;
  14.  
  15. import android.content.Context;
  16.  
  17. import android.database.Cursor;
  18.  
  19. import android.database.SQLException;
  20.  
  21. import android.database.sqlite.SQLiteDatabase;
  22.  
  23. import android.util.Log;
  24.  
  25.  
  26.  
  27. public class DBHelper {
  28.  
  29.     class Row extends Object {
  30.  
  31.         public String body;
  32.  
  33.         public long rowId;
  34.  
  35.         public String title;
  36.  
  37.         public String subtitle;
  38.  
  39.         public int hour;
  40.  
  41.         public int minute;
  42.  
  43.     }
  44.  
  45.  
  46.  
  47.     private static final String DATABASE_CREATE =
  48.  
  49.         "create table todo2 (rowid integer primary key autoincrement, "
  50.  
  51.             + "title text not null, body text not null, hour integer, minute integer);";
  52.  
  53.  
  54.  
  55.     private static final String DATABASE_NAME = "data2";
  56.  
  57.  
  58.  
  59.     private static final String DATABASE_TABLE = "todo2";
  60.  
  61.  
  62.  
  63.     private static final int DATABASE_VERSION = 1;
  64.  
  65.  
  66.  
  67.     private SQLiteDatabase db;
  68.  
  69.  
  70.  
  71.     public DBHelper(Context ctx) {
  72.  
  73.         try {
  74.  
  75.             db = ctx.openDatabase(DATABASE_NAME, null);
  76.  
  77.         } catch (FileNotFoundException e) {
  78.  
  79.             try {
  80.  
  81.                 db =
  82.  
  83.                     ctx.createDatabase(DATABASE_NAME, DATABASE_VERSION, 0,
  84.  
  85.                         null);
  86.  
  87.                 db.execSQL(DATABASE_CREATE);
  88.  
  89.             } catch (FileNotFoundException e1) {
  90.  
  91.                 db = null;
  92.  
  93.             }
  94.  
  95.         }
  96.  
  97.     }
  98.  
  99.  
  100.  
  101.     public void close() {
  102.  
  103.         db.close();
  104.  
  105.     }
  106.  
  107.  
  108.  
  109.     public void createRow(String title, String body,String subtitle,int hour,int minute) {
  110.  
  111.         ContentValues initialValues = new ContentValues();
  112.  
  113.         initialValues.put("title", title);
  114.  
  115.         initialValues.put("body", body);
  116.  
  117.         initialValues.put("subtitle", subtitle);
  118.  
  119.         initialValues.put("hour", hour);
  120.  
  121.         initialValues.put("minute", minute);
  122.  
  123.         db.insert(DATABASE_TABLE, null, initialValues);
  124.  
  125.     }
  126.  
  127.  
  128.  
  129.     public void deleteRow(long rowId) {
  130.  
  131.         db.delete(DATABASE_TABLE, "rowid=" + rowId, null);
  132.  
  133.     }
  134.  
  135.  
  136.  
  137.     public List<Row> fetchAllRows() {
  138.  
  139.         ArrayList<Row> ret = new ArrayList<Row>();
  140.  
  141.         try {
  142.  
  143.             Cursor c =
  144.  
  145.                 db.query(DATABASE_TABLE, new String[] {
  146.  
  147.                     "rowid", "title", "body","subtitle","hour","minute"}, null, null, null, null, null);
  148.  
  149.             int numRows = c.count();
  150.  
  151.             c.first();
  152.  
  153.             for (int i = 0; i < numRows; ++i) {
  154.  
  155.                 Row row = new Row();
  156.  
  157.                 row.rowId = c.getLong(0);
  158.  
  159.                 row.title = c.getString(1);
  160.  
  161.                 row.body = c.getString(2);
  162.  
  163.                 row.subtitle = c.getString(3);
  164.  
  165.                 row.hour=c.getInt(4);
  166.  
  167.                 row.minute=c.getInt(5);
  168.  
  169.                 ret.add(row);
  170.  
  171.                 c.next();
  172.  
  173.             }
  174.  
  175.         } catch (SQLException e) {
  176.  
  177.             Log.e("booga", e.toString());
  178.  
  179.         }
  180.  
  181.         return ret;
  182.  
  183.     }
  184.  
  185.  
  186.  
  187.     public Row fetchRow(long rowId) {
  188.  
  189.         Row row = new Row();
  190.  
  191.         Cursor c =
  192.  
  193.             db.query(true, DATABASE_TABLE, new String[] {
  194.  
  195.                 "rowid", "title", "body","subtitle","hour","minute"}, "rowid=" + rowId, null, null,
  196.  
  197.                 null, null);
  198.  
  199.         if (c.count() > 0) {
  200.  
  201.             c.first();
  202.  
  203.             row.rowId = c.getLong(0);
  204.  
  205.             row.title = c.getString(1);
  206.  
  207.             row.body = c.getString(2);
  208.  
  209.             row.subtitle = c.getString(3);
  210.  
  211.             row.hour=c.getInt(4);
  212.  
  213.             row.minute=c.getInt(5);
  214.  
  215.             return row;
  216.  
  217.         } else {
  218.  
  219.             row.rowId = -1;
  220.  
  221.             row.body = row.title = row.subtitle=null;
  222.  
  223.             row.hour=row.minute=0;
  224.  
  225.         }
  226.  
  227.         return row;
  228.  
  229.     }
  230.  
  231.  
  232.  
  233.     public void updateRow(long rowId, String title, String body, String subtitle,int hour,int minute) {
  234.  
  235.         ContentValues args = new ContentValues();
  236.  
  237.         args.put("title", title);
  238.  
  239.         args.put("body", body);
  240.  
  241.         args.put("subtitle", subtitle);
  242.  
  243.         args.put("hour",hour);
  244.  
  245.         args.put("minute", minute);
  246.  
  247.        
  248.  
  249.         db.update(DATABASE_TABLE, args, "rowid=" + rowId, null);
  250.  
  251.     }
  252.  
  253. }
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
Parsed in 0.052 seconds, using GeSHi 1.0.8.4
androidbeginner
Junior Developer
Junior Developer
 
Posts: 17
Joined: Tue Feb 05, 2008 7:10 am

Top

Return to General

Who is online

Users browsing this forum: No registered users and 5 guests