Android代码示例

目录
  • Android代码示例
    • OptionsMenu
    • ImageButton
    • CheckBox & RadioButton
    • Context Menu快捷菜单
    • Key Event
    • ListView Demo
    • Sub menu 子菜单
    • Activity Communication
    • BroadcastReceiverDemo
    • Intent Demo
    • IntentResolutionDemo
    • AIDL
    • AIDL: RemoteMathCallerDemoActivity
    • ContentProvider Demo
    • ContentResolverDemo
    • SQLite Demo

OptionsMenu

@Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.main_menu, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        TextView label = (TextView)findViewById(R.id.label);                switch (item.getItemId()) {        case R.id.main_menu_0:        label.setText("打印,菜单ID:" + item.getItemId());            return true;        case R.id.main_menu_1:        label.setText("新建,菜单ID:" + item.getItemId());            return true;        case R.id.main_menu_2:        label.setText("邮件,菜单ID:" + item.getItemId());            return true;        case R.id.main_menu_3:        label.setText("设置,菜单ID:" + item.getItemId());            return true;        case R.id.main_menu_4:        label.setText("订阅,菜单ID:" + item.getItemId());            return true;        default:            return false;        }    }

全体文件:

public class OptionMenu2Activity extends Activity {final static int MENU_00 = Menu.FIRST;final static int MENU_01 = Menu.FIRST+1;final static int MENU_02 = Menu.FIRST+2;final static int MENU_03 = Menu.FIRST+3;final static int MENU_04 = Menu.FIRST+4;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }        @Override    public boolean onCreateOptionsMenu(Menu menu) {    menu.add(0,MENU_00,0,"打印").setIcon(R.drawable.pic0);    menu.add(0,MENU_01,1,"新建").setIcon(R.drawable.pic1);    menu.add(0,MENU_02,2,"邮件").setIcon(R.drawable.pic2);    menu.add(0,MENU_03,3,"设置").setIcon(R.drawable.pic3);    menu.add(0,MENU_04,4,"订阅").setIcon(R.drawable.pic4);        return true;    }        @Override    public boolean onOptionsItemSelected(MenuItem item) {        TextView label = (TextView)findViewById(R.id.label);                switch (item.getItemId()) {        case MENU_00:        label.setText("打印,菜单ID:" + item.getItemId());            return true;        case MENU_01:        label.setText("新建,菜单ID:" + item.getItemId());            return true;        case MENU_02:        label.setText("邮件,菜单ID:" + item.getItemId());            return true;        case MENU_03:        label.setText("设置,菜单ID:" + item.getItemId());            return true;        case MENU_04:        label.setText("订阅,菜单ID:" + item.getItemId());            return true;        default:            return false;        }    }}

ImageButton

imageButton.setImageResource(R.drawable.download);imageButton.setOnClickListener(new View.OnClickListener() {    public void onClick(View view) {    textView.setText("ImageButtonTest");   }});

CheckBox & RadioButton

  • checkBox
        final CheckBox checkBox1= (CheckBox)findViewById(R.id.CheckBox01);        final CheckBox checkBox2= (CheckBox)findViewById(R.id.CheckBox02);          CheckBox.OnClickListener checkboxListener = new CheckBox.OnClickListener(){@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.CheckBox01:textView.setText("CheckBox01, isChecked:"+String.valueOf(checkBox1.isChecked()));return;case R.id.CheckBox02:textView.setText("CheckBox02, isChecked:"+String.valueOf(checkBox2.isChecked()));return;}}};  checkBox1.setOnClickListener(checkboxListener);checkBox2.setOnClickListener(checkboxListener);
  • RadioButton
        final RadioButton radioButton1 = (RadioButton)findViewById(R.id.RadioButton01);        final RadioButton radioButton2 = (RadioButton)findViewById(R.id.RadioButton02);        RadioButton.OnClickListener radioButtonListener = new RadioButton.OnClickListener(){@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.RadioButton01:textView.setText("RadioButton1 is selected");return;case R.id.RadioButton02:textView.setText("RadioButton2 is selected");;return;}}};  radioButton1.setOnClickListener(radioButtonListener);radioButton2.setOnClickListener(radioButtonListener);

Context Menu快捷菜单

public class ContextMenuActivity extends Activity {    /** Called when the activity is first created. */final static int CONTEXT_MENU_1 = Menu.FIRST;final static int CONTEXT_MENU_2 = Menu.FIRST+1;final static int CONTEXT_MENU_3 = Menu.FIRST+2;TextView LabelView = null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        LabelView = (TextView)findViewById(R.id.label);        LabelView.setText(Html.fromHtml("红色其它颜色"));        registerForContextMenu(LabelView);    }        @Override    public void onCreateContextMenu(ContextMenu menu,     View v, ContextMenuInfo menuInfo){    menu.setHeaderTitle("快捷菜单标题");    menu.add(0, CONTEXT_MENU_1, 0,"菜单子项1");    menu.add(0, CONTEXT_MENU_2, 1,"菜单子项2");    menu.add(0, CONTEXT_MENU_3, 2,"菜单子项3");    }        @Override    public boolean onContextItemSelected(MenuItem item){    switch(item.getItemId()){    case CONTEXT_MENU_1:    LabelView.setText("菜单子项1");    return true;    case CONTEXT_MENU_2:    LabelView.setText("菜单子项2");    return true;    case CONTEXT_MENU_3:    LabelView.setText("菜单子项3");    return true;    }    return false;    }   }

Key Event

public class KeyEventDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                EditText entryText = (EditText)findViewById(R.id.entry);        final CheckBox checkBox = (CheckBox)findViewById(R.id.block);        final TextView labelView = (TextView)findViewById(R.id.label);        entryText.setOnKeyListener(new OnKeyListener(){@Overridepublic boolean onKey(View view, int keyCode, KeyEvent keyEvent) {int metaState = keyEvent.getMetaState();int unicodeChar = keyEvent.getUnicodeChar();String msg = "";msg +="按键动作:" + String.valueOf(keyEvent.getAction())+"\n";msg +="按键代码:" + String.valueOf(keyCode)+"\n";msg +="按键字符:" + (char)unicodeChar+"\n";msg +="UNICODE:" + String.valueOf(unicodeChar)+"\n";msg +="重复次数:" + String.valueOf(keyEvent.getRepeatCount())+"\n";msg +="功能键状态:" + String.valueOf(metaState)+"\n";msg +="硬件编码:" + String.valueOf(keyEvent.getScanCode())+"\n";msg +="按键标志:" + String.valueOf(keyEvent.getFlags())+"\n";labelView.setText(msg);if (checkBox.isChecked())return true;elsereturn false;}              });      }}

ListView Demo

public class ListViewDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                final TextView textView = (TextView)findViewById(R.id.TextView01);        ListView listView = (ListView)findViewById(R.id.ListView01);                List list  = new ArrayList();        list .add("ListView子项1");        list .add("ListView子项2");        list .add("ListView子项3");                ArrayAdapter adapter = new ArrayAdapter(this,         android.R.layout.simple_list_item_1, list );        listView.setAdapter(adapter);AdapterView.OnItemClickListener listViewListener = new AdapterView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String msg = "父View:"+arg0.toString()+"\n"+"子View:"+arg1.toString()+"\n"+"位置:"+String.valueOf(arg2)+",ID:"+String.valueOf(arg3);textView.setText(msg);}};listView.setOnItemClickListener(listViewListener);    }}
package edu.hrbeu.SubMenu2;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.widget.TextView;public class SubMenu2Activity extends Activity {final static int MENU_00 = Menu.FIRST;final static int MENU_01 = Menu.FIRST+1;final static int SUB_MENU_00_01 = Menu.FIRST+2;final static int SUB_MENU_01_00 = Menu.FIRST+3;final static int SUB_MENU_01_01 = Menu.FIRST+4;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }        @Override    public boolean onCreateOptionsMenu(Menu menu) {       SubMenu sub1 = (SubMenu) menu.addSubMenu(0,MENU_00,0,"设置").setHeaderIcon(R.drawable.pic3);sub1.add(0,SUB_MENU_00_01 ,0,"打印").setIcon(R.drawable.pic0);SubMenu sub2 = (SubMenu) menu.addSubMenu(0,MENU_01,1,"新建").setHeaderIcon(R.drawable.pic1);sub2.add(0,SUB_MENU_01_00 ,0,"邮件").setIcon(R.drawable.pic2);sub2.add(0,SUB_MENU_01_01 ,0,"订阅").setIcon(R.drawable.pic4);        return true;    }        @Override    public boolean onOptionsItemSelected(MenuItem item) {        TextView label = (TextView)findViewById(R.id.label);                switch (item.getItemId()) {        case MENU_00:        label.setText("设置,菜单ID:" + item.getItemId());            return true;        case MENU_01:        label.setText("新建,菜单ID:" + item.getItemId());            return true;        case SUB_MENU_00_01:        label.setText("打印,子菜单ID:" + item.getItemId());            return true;        case SUB_MENU_01_00:        label.setText("邮件,子菜单ID:" + item.getItemId());            return true;        case SUB_MENU_01_01:        label.setText("订阅,子菜单ID:" + item.getItemId());            return true;        default:            return false;        }    }}

Activity Communication

ActivityCommunication.java

package edu.hrbeu.ActivityCommunication;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class ActivityCommunicationActivity extends Activity {private static final int SUBACTIVITY1 = 1;private static final int SUBACTIVITY2 = 2;TextView textView;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                textView = (TextView)findViewById(R.id.textShow);        final Button btn1 = (Button)findViewById(R.id.btn1);        final Button btn2 = (Button)findViewById(R.id.btn2);                btn1.setOnClickListener(new OnClickListener(){        public void onClick(View view){        Intent intent = new Intent(ActivityCommunicationActivity.this, SubActivity1.class);                startActivityForResult(intent, SUBACTIVITY1);        }        });                btn2.setOnClickListener(new OnClickListener(){        public void onClick(View view){        Intent intent = new Intent(ActivityCommunicationActivity.this, SubActivity2.class);                startActivityForResult(intent, SUBACTIVITY2);        }        });    }@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);switch(requestCode){case SUBACTIVITY1:if (resultCode == RESULT_OK){Uri uriData = data.getData();textView.setText(uriData.toString());}break;case SUBACTIVITY2:break;}}}

SubActivity1.java

package edu.hrbeu.ActivityCommunication;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class SubActivity1 extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.subactivity1);                final EditText editText = (EditText)findViewById(R.id.edit);        Button btnOK = (Button)findViewById(R.id.btn_ok);        Button btnCancel = (Button)findViewById(R.id.btn_cancel);                btnOK.setOnClickListener(new OnClickListener(){        public void onClick(View view){        String uriString = editText.getText().toString();        Uri data = Uri.parse(uriString);                Intent result = new Intent(null, data);                setResult(RESULT_OK, result);        finish();        }        });                btnCancel.setOnClickListener(new OnClickListener(){        public void onClick(View view){        setResult(RESULT_CANCELED, null);        finish();        }        });    }}

SubActivity2.java

package edu.hrbeu.ActivityCommunication;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class SubActivity2 extends Activity { /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.subactivity2);                Button btnReturn = (Button)findViewById(R.id.btn_return);                btnReturn.setOnClickListener(new OnClickListener(){        public void onClick(View view){        setResult(RESULT_CANCELED, null);        finish();        }        });    }}

BroadcastReceiverDemo

BroadcastReceiverDemoActivity.java

package edu.hrbeu.BroadcastReceiverDemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class BroadcastReceiverDemoActivity extends Activity {private EditText entryText ;private Button button;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        entryText = (EditText)findViewById(R.id.entry);        button = (Button)findViewById(R.id.btn);                button.setOnClickListener(new OnClickListener(){        public void onClick(View view){        Intent intent = new Intent("HELLO");        intent.putExtra("message", entryText.getText().toString());        sendBroadcast(intent);        }        });    }}

MyBroadcastReceiver.java

package edu.hrbeu.BroadcastReceiverDemo;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class MyBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {String msg = intent.getStringExtra("message");Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();}}

Intent Demo

IntentDemoActivity.java

package edu.hrbeu.IntentDemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class IntentDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                Button button = (Button)findViewById(R.id.btn);        button.setOnClickListener(new OnClickListener(){        public void onClick(View view){        Intent intent = new Intent(IntentDemoActivity.this, NewActivity.class);                startActivity(intent);        }        });           }}

NewActivity.java

package edu.hrbeu.IntentDemo;import android.app.Activity;import android.os.Bundle;public class NewActivity extends Activity {/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main_2);    }}

IntentResolutionDemo

IntentResutionDemoActivity.java

package edu.hrbeu.IntentResolutionDemo;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class IntentResolutionDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                Button button = (Button)findViewById(R.id.btn);        button.setOnClickListener(new OnClickListener(){        public void onClick(View view){        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("schemodemo://edu.hrbeu/path"));        startActivity(intent);        }        });    }}

NewActivity.java

package edu.hrbeu.IntentResolutionDemo;import android.app.Activity;import android.os.Bundle;public class NewActivity extends Activity {/** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main_2);    }}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>                                                                                                                                                                                                

AIDL

a.aidl

package ImplicityRandomServiceDemo;interface a{long add(long b1,long b2);}

ImplicityRandomServiceDemoActivity.java

package edu.hrbeu.ImplicityRandomServiceDemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;public class ImplicityRandomServiceDemoActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                Button startButton = (Button)findViewById(R.id.start);        Button stopButton = (Button)findViewById(R.id.stop);                final Intent serviceIntent = new Intent();        serviceIntent.setAction("hh1");                                                   startButton.setOnClickListener(new Button.OnClickListener(){        public void onClick(View view){        startService(serviceIntent);        }        });                stopButton.setOnClickListener(new Button.OnClickListener(){        public void onClick(View view){        stopService(serviceIntent);        }        });    }}

RandomService.java

package edu.hrbeu.ImplicityRandomServiceDemo;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.widget.Toast;public class RandomService extends Service{@Overridepublic void onCreate() {    super.onCreate();    Toast.makeText(this, "(1) 调用onCreate()",     Toast.LENGTH_LONG).show();    }@Overridepublic void onStart(Intent intent, int startId) {      super.onStart(intent, startId);      Toast.makeText(this, "(2) 调用onStart()",       Toast.LENGTH_SHORT).show();      double randomDouble = Math.random();      String msg = "随机数:"+ String.valueOf(randomDouble);      Toast.makeText(this,msg, Toast.LENGTH_SHORT).show();      }@Overridepublic void onDestroy() {     super.onDestroy();     Toast.makeText(this, "(3) 调用onDestroy()",      Toast.LENGTH_SHORT).show();     } @Overridepublic IBinder onBind(Intent intent) {return null;}}

AIDL: RemoteMathCallerDemoActivity

RemoteMathCallerDemoActivity.java

package edu.hrbeu.RemoteMathCallerDemo;import edu.hrbeu.RemoteMathServiceDemo.IMathService;import android.app.Activity;import android.content.ComponentName;import android.content.Context;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.os.RemoteException;import android.view.View;import android.widget.Button;import android.widget.TextView;public class RemoteMathCallerDemoActivity extends Activity {private IMathService mathService;    private ServiceConnection mConnection = new ServiceConnection() {                           @Overridepublic void onServiceConnected(ComponentName name, IBinder service) {mathService = IMathService.Stub.asInterface(service);                          }@Overridepublic void onServiceDisconnected(ComponentName name) {mathService = null; }     };     private boolean isBound = false;TextView labelView;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                labelView = (TextView)findViewById(R.id.label);        Button bindButton = (Button)findViewById(R.id.bind);        Button unbindButton = (Button)findViewById(R.id.unbind);        Button computButton = (Button)findViewById(R.id.compute_add);                bindButton.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {if(!isBound){final Intent serviceIntent = new Intent();serviceIntent.setAction("edu.hrbeu.RemoteMathServiceDemo.MathService");bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);isBound = true;}}          });                 unbindButton.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {if(isBound){isBound = false;unbindService(mConnection);mathService = null;}}            });                computButton.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {if (mathService == null){labelView.setText("δ��Զ�̷���");return;}long a = Math.round(Math.random()*100);long b = Math.round(Math.random()*100);long result = 0;try {result = mathService.Add(a, b);} catch (RemoteException e) {e.printStackTrace();}String msg = String.valueOf(a)+" + "+String.valueOf(b)+" = "+String.valueOf(result);labelView.setText(msg);}         });    } }

IMathService.aidl

package edu.hrbeu.RemoteMathServiceDemo;   interface IMathService {            long Add(long a, long b);           } 

xml:

<?xml version="1.0" encoding="utf-8"?>                                                                                    

ContentProvider Demo

contentProvider.java

package edu.hrbeu.ContentProviderDemo;import android.content.ContentProvider;import android.content.ContentUris;import android.content.ContentValues;import android.content.Context;import android.content.UriMatcher;import android.database.Cursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.database.sqlite.SQLiteQueryBuilder;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.net.Uri;public class PeopleProvider extends ContentProvider{private static final String DB_NAME = "people.db";private static final String DB_TABLE = "peopleinfo";private static final int DB_VERSION = 1;private SQLiteDatabase db;private DBOpenHelper dbOpenHelper;private static final int MULTIPLE_PEOPLE = 1;private static final int SINGLE_PEOPLE = 2;private static final UriMatcher uriMatcher;static { uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI(People.AUTHORITY, People.PATH_MULTIPLE, MULTIPLE_PEOPLE); uriMatcher.addURI(People.AUTHORITY, People.PATH_SINGLE, SINGLE_PEOPLE);}@Overridepublic String getType(Uri uri) {switch(uriMatcher.match(uri)){case MULTIPLE_PEOPLE:return People.MINE_TYPE_MULTIPLE;case SINGLE_PEOPLE:return People.MINE_TYPE_SINGLE;default:throw new IllegalArgumentException("Unkown uri:"+uri);}}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {int count = 0;switch(uriMatcher.match(uri)){case MULTIPLE_PEOPLE:count = db.delete(DB_TABLE, selection, selectionArgs);break;case SINGLE_PEOPLE:String segment = uri.getPathSegments().get(1);count = db.delete(DB_TABLE, People.KEY_ID + "=" + segment, selectionArgs);break;default:throw new IllegalArgumentException("Unsupported URI:" + uri);}getContext().getContentResolver().notifyChange(uri, null);return count;}@Overridepublic Uri insert(Uri uri, ContentValues values) {long id = db.insert(DB_TABLE, null, values);if ( id > 0 ){Uri newUri = ContentUris.withAppendedId(People.CONTENT_URI, id);getContext().getContentResolver().notifyChange(newUri, null);return newUri;}throw new SQLException("Failed to insert row into " + uri);}@Overridepublic boolean onCreate() {Context context = getContext();dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);db = dbOpenHelper.getWritableDatabase();if (db == null)return false;else return true;}@Overridepublic Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {SQLiteQueryBuilder qb = new SQLiteQueryBuilder();qb.setTables(DB_TABLE);switch(uriMatcher.match(uri)){case SINGLE_PEOPLE:qb.appendWhere(People.KEY_ID + "=" + uri.getPathSegments().get(1));break;default:break;}Cursor cursor = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder);cursor.setNotificationUri(getContext().getContentResolver(), uri);return cursor;}@Overridepublic int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {int count;switch(uriMatcher.match(uri)){case MULTIPLE_PEOPLE:count = db.update(DB_TABLE, values, selection, selectionArgs);break;case SINGLE_PEOPLE:String segment = uri.getPathSegments().get(1);count = db.update(DB_TABLE, values, People.KEY_ID+"="+segment, selectionArgs);break;default:throw new IllegalArgumentException("Unknow URI:" + uri);}getContext().getContentResolver().notifyChange(uri, null);return count;}  private static class DBOpenHelper extends SQLiteOpenHelper {  public DBOpenHelper(Context context, String name, CursorFactory factory, int version) {    super(context, name, factory, version);  }  private static final String DB_CREATE = "create table " +     DB_TABLE + " (" + People.KEY_ID + " integer primary key autoincrement, " +    People.KEY_NAME+ " text not null, " + People.KEY_AGE+ " integer," + People.KEY_HEIGHT + " float);";  @Override  public void onCreate(SQLiteDatabase _db) {    _db.execSQL(DB_CREATE);  }  @Override  public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) {        _db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);    onCreate(_db);  }} }

People.java

package edu.hrbeu.ContentProviderDemo;import android.net.Uri;public class People{public static final String MIME_DIR_PREFIX = "vnd.android.cursor.dir";public static final String MIME_ITEM_PREFIX = "vnd.android.cursor.item";public static final String MINE_ITEM = "vnd.hrbeu.people";public static final String MINE_TYPE_SINGLE = MIME_ITEM_PREFIX + "/" + MINE_ITEM;public static final String MINE_TYPE_MULTIPLE = MIME_DIR_PREFIX + "/" + MINE_ITEM;public static final String AUTHORITY = "edu.hrbeu.peopleprovider";public static final String PATH_SINGLE = "people/#";public static final String PATH_MULTIPLE = "people";public static final String CONTENT_URI_STRING = "content://" + AUTHORITY + "/" + PATH_MULTIPLE;public static final Uri  CONTENT_URI = Uri.parse(CONTENT_URI_STRING); public static final String KEY_ID = "_id";public static final String KEY_NAME = "name";public static final String KEY_AGE = "age";public static final String KEY_HEIGHT = "height";}

ContentResolverDemo

ContentResolverDemoActivtiy.java

People.java同上

SQLite Demo

DBAdapter.java

package edu.hrbeu.SQLiteDemo;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteException;import android.database.sqlite.SQLiteOpenHelper;import android.database.sqlite.SQLiteDatabase.CursorFactory;public class DBAdapter {private static final String DB_NAME = "people.db";private static final String DB_TABLE = "peopleinfo";private static final int DB_VERSION = 1; public static final String KEY_ID = "_id";public static final String KEY_NAME = "name";public static final String KEY_AGE = "age";public static final String KEY_HEIGHT = "height";private SQLiteDatabase db;private final Context context;private DBOpenHelper dbOpenHelper;public DBAdapter(Context _context) {    context = _context;  }  /** Close the database */  public void close() {  if (db != null){  db.close();  db = null;  }}  /** Open the database */  public void open() throws SQLiteException {    dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);  try {  db = dbOpenHelper.getWritableDatabase();  }  catch (SQLiteException ex) {  db = dbOpenHelper.getReadableDatabase();  }  }    public long insert(People people) {    ContentValues newValues = new ContentValues();      newValues.put(KEY_NAME, people.Name);    newValues.put(KEY_AGE, people.Age);    newValues.put(KEY_HEIGHT, people.Height);        return db.insert(DB_TABLE, null, newValues);  }  public People[] queryAllData() {    Cursor results =  db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},   null, null, null, null, null);  return ConvertToPeople(results);     }    public People[] queryOneData(long id) {    Cursor results =  db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},   KEY_ID + "=" + id, null, null, null, null);  return ConvertToPeople(results);     }    private People[] ConvertToPeople(Cursor cursor){  int resultCounts = cursor.getCount();  if (resultCounts == 0 || !cursor.moveToFirst()){  return null;  }  People[] peoples = new People[resultCounts];  for (int i = 0 ; i

People.java

package edu.hrbeu.SQLiteDemo;public class People {public int ID = -1;public String Name;public int Age;public float Height;@Overridepublic String toString(){String result = "";result += "ID:" + this.ID + ",";result += "姓名:" + this.Name + ",";result += "年龄:" + this.Age + ", ";result += "身高:" + this.Height + ",";return result;}}

SQLiteDemoActivity.java

package edu.hrbeu.SQLiteDemo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class SQLiteDemoActivity extends Activity {    /** Called when the activity is first created. */private DBAdapter dbAdepter ;private EditText nameText;private EditText ageText;private EditText heightText;private EditText idEntry;private TextView labelView;private TextView displayView;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                nameText = (EditText)findViewById(R.id.name);        ageText = (EditText)findViewById(R.id.age);        heightText = (EditText)findViewById(R.id.height);        idEntry = (EditText)findViewById(R.id.id_entry);                labelView = (TextView)findViewById(R.id.label);        displayView = (TextView)findViewById(R.id.display);                                Button addButton = (Button)findViewById(R.id.add);        Button queryAllButton = (Button)findViewById(R.id.query_all);              Button clearButton = (Button)findViewById(R.id.clear);        Button deleteAllButton = (Button)findViewById(R.id.delete_all);                Button queryButton = (Button)findViewById(R.id.query);        Button deleteButton = (Button)findViewById(R.id.delete);        Button updateButton = (Button)findViewById(R.id.update);                        addButton.setOnClickListener(addButtonListener);         queryAllButton.setOnClickListener(queryAllButtonListener);             clearButton.setOnClickListener(clearButtonListener);        deleteAllButton.setOnClickListener(deleteAllButtonListener);                      queryButton.setOnClickListener(queryButtonListener);        deleteButton.setOnClickListener(deleteButtonListener);        updateButton.setOnClickListener(updateButtonListener);                dbAdepter = new DBAdapter(this);        dbAdepter.open();    }        OnClickListener addButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {People people = new People();people.Name = nameText.getText().toString();people.Age = Integer.parseInt(ageText.getText().toString());people.Height = Float.parseFloat(heightText.getText().toString());long colunm = dbAdepter.insert(people);if (colunm == -1 ){labelView.setText("添加过程错误!");} else {labelView.setText("成功添加数据,ID:"+String.valueOf(colunm));}}    };        OnClickListener queryAllButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {People[] peoples = dbAdepter.queryAllData();if (peoples == null){labelView.setText("数据库中没有数据");return;}labelView.setText("数据库:");String msg = "";for (int i = 0 ; i0?"成功":"失败");labelView.setText(msg);}    };        OnClickListener updateButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {People people = new People();people.Name = nameText.getText().toString();people.Age = Integer.parseInt(ageText.getText().toString());people.Height = Float.parseFloat(heightText.getText().toString());long id = Integer.parseInt(idEntry.getText().toString());long count = dbAdepter.updateOneData(id, people);if (count == -1 ){labelView.setText("更新错误!");} else {labelView.setText("更新成功,更新数据"+String.valueOf(count)+"条");}}    };}

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. android:HttpURLConnection
  4. Android(安卓)Studio 自带的侧滑布局设置
  5. android SQLiteOpenHelper 和 DatabaseErrorHandler源码解析
  6. Android中数据库升级
  7. 【Android】loadData与loadDataWithBaseURL的区别
  8. android 监听联系人数据库
  9. android直接读取数据库文件

随机推荐

  1. Android(安卓)应用程序退出后不在运行列
  2. Android应用启动后自动创建桌面快捷方式
  3. Android获取屏幕分辨率及DisplayMetrics
  4. Android之ArrayAdapter用法总结
  5. Android中MediaMuxer跟MediaCodec用例
  6. Android系统的Binder机制之一——Service
  7. Android开发新手常见的10个误区
  8. Android(安卓)Lottie动画
  9. Eclipse用svn管理Android项目问题 (转来
  10. Android入门进阶教程(4)-android hello w