510 likes | 712 Views
Data Storage. Reference. http://developer.android.com/guide/topics/data/data-storage.html#pref http://marakana.com/forums/android/examples/63.html Hello Android, chapter 9. Overview. Shared Preferences Store private primitive data in key-value pairs. Internal Storage
E N D
Reference • http://developer.android.com/guide/topics/data/data-storage.html#pref • http://marakana.com/forums/android/examples/63.html • Hello Android, chapter 9
Overview • Shared Preferences • Store private primitive data in key-value pairs. • Internal Storage • Store private data on the device memory. • External Storage • Store public data on the shared external storage. • SQLite Databases • Store structured data in a private database. • Network Connection • Store data on the web with your own network server
Shared Preferences Store private primitive data in key-value pairs
SharedPreferences Class • How to save and retrieve data? • Using SharePrference class • persistent key-value pairs • only primitive data types. • booleans, floats, ints, longs, and strings. • This data will persist across user sessions • even if your application is killed
Get SharedPreferences object • getSharedPreferences() • Use this if you need multiple preferences files identified by name, which you specify with the first parameter. • getPreferences() • Use this if you need only one preferences file for your Activity. Because this will be the only preferences file for your Activity, you don't supply a name
To write/Read values • Write • Call edit() to get a SharedPreferences.Editor. • Add values with methods such as putBoolean() and putString(). • Commit the new values with commit() • Read • use SharedPreferences methods such as getBoolean() and getString().
Using the Internal Storage Store private data on the device memory
Internal Storage • You can save files directly on the device's internal storage. • By default, files saved to the internal storage are private to your application and other applications cannot access them (nor can the user). • When the user uninstalls your application, these files are removed.
Write to files • Call openFileOutput() with the name of the file and the operating mode. This returns a FileOutputStream. • Write to the file with write(). • Close the stream with close().
Read files • Call openFileInput() and pass it the name of the file to read. This returns a FileInputStream. • Read bytes from the file with read(). • Then close the stream with close().
XML resources • XML resources can mean resources in general that are defined in XML, • layout files, styles, arrays, res/xml XML files. • In this section we will be dealing with res/xml XML files.
Hello Database SQLite Databases
SQLite • A tiny yet powerful database engine created by Dr. Richard Hipp in 2000. • It is arguably the most widely deployed SQL database engine in the world. • Besides Android, SQLite can be found in the Apple iPhone, Symbian phones, Mozilla Firefox, Skype, PHP, Adobe AIR, Mac OS X, Solaris, and many other places.
Why SQLite • It’s free. • The authors have placed it in the public domain and don’t charge for its use. • It’s small. • The current version is about 150KB, well within the memory budget of an Android phone. • It requires no setup or administration. • There is no server, no config file, and no need for a database administrator.
A SQLite database is just a file • Android stores the file • /data/data/packagename/databases • You can take that file, move it around, and even copy it to another system • for example, from your phone to your workstation), and it will work fine. • You can use the adb command or the File Explorer view in Eclipse to view, move, or delete it. • Window > Show View > Other... > Android > File Explorer)
Goal • Save time stamps and string to a table • Display it
Steps • Constants describing the database • Constants interface • represent the database • Using SQLiteOpenHelper • Driver • Main program
DATABASE_VERSION is just a number we make up. If this were a real program, you would increase the version number whenever you had to make significant changes to the database design (for example, to add a new column). manages database creation and versions. All you need to do is provide a constructor and override two methods.
close the database inside the finally block. So even if an error occurs in the middle, the database will still be closed. Every time you run this program, you’ll get a new event. Running a Query
Data Binding • Allows you to connect your model (data) to your view with just a few lines of code. • To demonstrate data binding, we’ll modify the Events example to use a ListView that is bound to the result of a database query.
putting the ID, time, and title on one line with colons in between the fields. added a little padding and formatting to make it look nice.
need to change the layout for the activity itself in layout/main.xml