当前位置: 代码迷 >> SQL >> SQLiteOpenHelper&SharedPreferences练习题
  详细解决方案

SQLiteOpenHelper&SharedPreferences练习题

热度:302   发布时间:2016-05-05 13:50:35.0
SQLiteOpenHelper&SharedPreferences练习
目录结构:

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;	}}





  相关解决方案