目录结构:
[img]http://dl.iteye.com/upload/attachment/361683/f6d512c1-f66c-38c4-9b54-76ef1e64c08c.png[/img]
[img]http://dl.iteye.com/upload/attachment/361686/2269a2c6-b965-38d2-8eb6-43f9b8eed2ca.png[/img]
[img]http://dl.iteye.com/upload/attachment/361688/fa9fa485-019d-3ed3-b29c-1daea7e72bed.png[/img]
[img]http://dl.iteye.com/upload/attachment/361683/f6d512c1-f66c-38c4-9b54-76ef1e64c08c.png[/img]
package com.dc.app;
import java.text.DecimalFormat;
import java.util.Locale;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class App extends Activity {
private static final String TAG="App";
/** Called when the activity is first created. */
private EditText height,weight;
private Button submit,nextpage,locale,toList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
// this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.main);
DisplayMetrics dm=new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth=dm.widthPixels;
int screenHeight=dm.heightPixels;
Toast.makeText(this, screenWidth+"*"+screenHeight, Toast.LENGTH_LONG).show();//320*480
height=(EditText)this.findViewById(R.id.height);
weight=(EditText)this.findViewById(R.id.weight);
submit=(Button)this.findViewById(R.id.submit);
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String s_h=height.getText().toString();
String s_w=weight.getText().toString();
if(s_h.equals("")||s_w.equals("")){
Toast.makeText(App.this, R.string.error, Toast.LENGTH_LONG).show();
return;
}
double h=Double.parseDouble(s_h)/100;
double w=Double.parseDouble(s_w);
double bmi=w/(h*h);
Toast.makeText(App.this, getText(R.string.result).toString()+new DecimalFormat("0.00").format(bmi), Toast.LENGTH_LONG).show();
if(bmi>25){
showNotify("减肥通知", "您应该减肥啦!");
}else if(bmi<20){
showNotify("增肥计划", "您应该多吃点!");
}else{
showNotify("好身材", "您应该保持您的身材!");
}
}
});
nextpage=(Button)findViewById(R.id.nextpage);
nextpage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(App.this, Report.class);
Bundle bundle=new Bundle();
bundle.putString("key_height", height.getText().toString());
bundle.putString("key_weight", weight.getText().toString());
intent.putExtras(bundle);//附加物,为意图追加额外的数据
startActivity(intent);
}
});
locale=(Button)findViewById(R.id.locale);
locale.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Resources res=getResources();
Configuration config=res.getConfiguration();
if(config.locale==Locale.SIMPLIFIED_CHINESE){
config.locale=Locale.ENGLISH;
}else{
config.locale=Locale.SIMPLIFIED_CHINESE;
}
DisplayMetrics dm=res.getDisplayMetrics();
res.updateConfiguration(config, dm);
}
});
toList=(Button)findViewById(R.id.toList);
toList.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(App.this, DummyNote.class);
startActivity(intent);
}
});
}
private void showNotify(String title,String content){
Notification notice=new Notification();
notice.icon=android.R.drawable.stat_sys_warning;
notice.tickerText=getText(R.string.label);
notice.when=10L;
notice.defaults=Notification.DEFAULT_SOUND;
notice.setLatestEventInfo(this, title,content, PendingIntent.getActivity(this, 0, null, 0));
NotificationManager manager=(NotificationManager)getSystemService(this.NOTIFICATION_SERVICE);
manager.notify(0,notice);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
}
private static final int DIALOG_ABOUT = 1;
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch (id) {
case DIALOG_ABOUT:
Dialog loginDialog=new AlertDialog.Builder(this)
.setTitle("BMI")
.setMessage(R.string.label2)
.setCancelable(true)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
})
.setNegativeButton(R.string.homepage, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
Uri uri=Uri.parse(getString(R.string.uri));
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
})
.create();
loginDialog.setCanceledOnTouchOutside(true);
return loginDialog;
default:
break;
}
return super.onCreateDialog(id);
}
public static final int menu_id_about=1;
public static final int menu_id_exit=2;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, menu_id_about, 0, R.string.about).setShortcut('1', 'a');//设置快捷键
menu.add(0, menu_id_exit, 0, R.string.exit).setShortcut('2', 'e');//设置快捷键
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case menu_id_about:
showDialog(DIALOG_ABOUT);
break;
case menu_id_exit:
save();
this.finish();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.findItem(menu_id_about).setVisible(true).setIcon(android.R.drawable.ic_menu_info_details);
menu.findItem(menu_id_exit).setVisible(true).setIcon(android.R.drawable.ic_menu_close_clear_cancel);
return super.onPrepareOptionsMenu(menu);
}
private void save(){
SharedPreferences setting=this.getPreferences(Activity.MODE_PRIVATE);
setting.edit().putString("HEIGHT", height.getText().toString())
.putString("WEIGHT", weight.getText().toString())
.commit();
}
private void read(){
SharedPreferences setting=this.getPreferences(Activity.MODE_PRIVATE);
height.setText(setting.getString("HEIGHT", ""));
weight.setText(setting.getString("WEIGHT", ""));
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
save();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
read();
}
}
package com.dc.helper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String databaseName="bmi.db";
public static final String tableName="notes";
public static final int databaseVersion=1;
public static final String field0="_id";
public static final String field1="note";
public static final String field2="created";
//创建或打开数据库
public DatabaseHelper(Context context) {
super(context, databaseName, null, databaseVersion);
// TODO Auto-generated constructor stub
}
//当数据库被创建时触发创建表
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql="create table "+tableName+"("+field0+" INTEGER PRIMARY KEY,"+field1+" TEXT,"+field2+" INTEGER);";
db.execSQL(sql);
}
//升级数据库时触发
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
String sql="DROP TABLE IF EXISTS "+tableName;
db.execSQL(sql);
onCreate(db);
}
}
package com.dc.adaper;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.dc.helper.DatabaseHelper;
public class DatabaseAdaper {
Context content;
DatabaseHelper helper;
SQLiteDatabase db;
public DatabaseAdaper(Context content){
this.content=content;
open();
}
public void open(){
helper=new DatabaseHelper(content);//创建或打开数据库
db=helper.getWritableDatabase();//真正创建
}
public void close(){
db.close();
}
public Cursor list(){
// return db.rawQuery("SELECT * FROM "+DatabaseHelper.tableName, null);
return db.query(DatabaseHelper.tableName, new String[]{DatabaseHelper.field0,DatabaseHelper.field1,DatabaseHelper.field2}, null, null, null, null, null);
}
public long insert(String note){
Date now=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
ContentValues values=new ContentValues();
values.put(DatabaseHelper.field1, note);
values.put(DatabaseHelper.field2, sdf.format(now));
return db.insert(DatabaseHelper.tableName, null, values);
}
public boolean delete(long id){
return db.delete(DatabaseHelper.tableName, DatabaseHelper.field0+"="+id, null)>0;
}
public Cursor get(long id){
Cursor cursor=db.query(DatabaseHelper.tableName, new String[]{DatabaseHelper.field0,DatabaseHelper.field1,DatabaseHelper.field2}, DatabaseHelper.field0+"="+id, null, null, null, null);
if(cursor!=null){
cursor.moveToFirst();
}
return cursor;
}
public boolean update(long id,String note){
ContentValues values=new ContentValues();
values.put(DatabaseHelper.field1, note);
return db.update(DatabaseHelper.tableName, values, DatabaseHelper.field0+"="+id, null)>0;
}
}
[img]http://dl.iteye.com/upload/attachment/361686/2269a2c6-b965-38d2-8eb6-43f9b8eed2ca.png[/img]
[img]http://dl.iteye.com/upload/attachment/361688/fa9fa485-019d-3ed3-b29c-1daea7e72bed.png[/img]