SQLiteOpenHelper’s method getWritableDatabase to create and/or open a database that will be used for reading and writing.
List<Comment> where List is a generic interface that takes a type parameter—in this case, Comment.
R.layout.main.
One is a ListView node with the attribute:
android:id="@android:id/list"This will be where the list is displayed in the view. A ListView can have its data displayed via an Adapter. An AdapterView (one of its sub-classes is ListView) is a view whose children are determined by an Adapter, which acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items and is also responsible for making a View for each item in the data set. An
ArrayAdapter constructor expects three parameters:
this),
setListAdapter( ).
Android comes with a few built-in layouts where Android.R.layout.simple_list_item_1 is for a single string.
| src/main/java/com/example/wenchen/sqlitedemo/TestDatabase.java |
package com.example.wenchen.sqlitedemo;
import java.util.List;
import java.util.Random;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
public class TestDatabase extends ListActivity {
private CommentsDataSource datasource;
@Override
public void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.main );
datasource = new CommentsDataSource( this );
datasource.open( );
List<Comment> values = datasource.getAllComments( );
// Use the SimpleCursorAdapter to show the elements in a ListView.
ArrayAdapter<Comment> adapter = new ArrayAdapter<Comment>(
this, android.R.layout.simple_list_item_1, values );
setListAdapter( adapter );
}
// Will be called via the onClick attribute of the buttons in main.xml.
public void onClick( View view ) {
@SuppressWarnings( "unchecked" )
ArrayAdapter<Comment> adapter = ( ArrayAdapter<Comment> ) getListAdapter( );
Comment comment = null;
int id = view.getId( );
if ( id == R.id.add ) {
String[ ] comments = new String[ ] { "Cool", "Very nice", "Hate it" };
int nextInt = new Random( ).nextInt( 3 );
// Save the new comment to the database.
comment = datasource.createComment( comments[nextInt] );
adapter.add( comment );
}
else if ( id == R.id.delete ) {
if ( getListAdapter( ).getCount( ) > 0 ) {
comment = (Comment) getListAdapter( ).getItem( 0 );
datasource.deleteComment( comment );
adapter.remove( comment );
}
}
adapter.notifyDataSetChanged( );
}
@Override
protected void onResume( ) {
datasource.open( );
super.onResume( );
}
@Override
protected void onPause( ) {
datasource.close( );
super.onPause( );
}
}
|
|
A mother asks her young sons what they want for breakfast. The first little boy says, “I’ll have some @#$%^& pancakes.” The mother angrily sends him to his room for cursing. She glares at the other little boy and asks, “What do you want for breakfast?!” The second boy says, “Well, I sure don’t want the @#$%^& pancakes!” |