2014年11月11日 星期二

android程式設計實例入門 -Sample改寫分享 (2014/11/12)

android程式設計實例入門 -Sample改寫分享 (2014/11/12)


 


此範例為程式碼(10\Sample05)的改寫,建立一個ListView來實作GUI,利用SQLiteDatabase元件實作SQLite資料庫字串完全相等條件搜尋功能,程式碼如下所示:


 


 


package com.jashsample;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Random;

import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.ContactsContract;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.app.SearchManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnKeyListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Camera;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.hardware.Camera.Size;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.speech.RecognizerIntent;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.text.format.DateFormat;
import android.text.method.KeyListener;
import android.view.Display;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ViewFlipper;
/*
 * 建立ListView,利用SQLiteDatabase元件實作SQLite資料庫字串完全相等條件搜尋功能。
 */
/*
 * <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 */
public class MainActivity extends Activity {
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(ll);

ListView lv = new ListView(this);

String str = "data/data/" + getPackageName() + "/Sample.db";
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(str, null);

String qry0 = "DROP TABLE IF EXISTS product";
String qry1 = "CREATE TABLE product" +
"(id INTEGER PRIMARY KEY, name STRING, price INTEGER)";

String[] qry2 ={"INSERT INTO product(name, price) VALUES ('鉛筆', 80)",
"INSERT INTO product(name, price) VALUES ('橡皮擦', 50)",
"INSERT INTO product(name, price) VALUES ('圓規', 200)",
"INSERT INTO product(name, price) VALUES ('指南針', 300)",
"INSERT INTO product(name, price) VALUES ('原子筆', 100)"};

String qry3 = "SELECT * FROM product WHERE name='鉛筆'";

db.execSQL(qry0);
db.execSQL(qry1);

for(int i=0; i<qry2.length; i++)
{
db.execSQL(qry2[i]);
}

Cursor cr = db.rawQuery(qry3, null);
startManagingCursor(cr);

ArrayAdapter<String> ad = new ArrayAdapter<String>
(this, android.R.layout.simple_list_item_1);
while(cr.moveToNext())
{
int i = cr.getColumnIndex("id");
int n = cr.getColumnIndex("name");
int p = cr.getColumnIndex("price");
int id = cr.getInt(i);
String name = cr.getString(n);
int price = cr.getInt(p);

String row = id + "------" + name + "~" + price + "元";

ad.add(row);
}

lv.setAdapter(ad);

ll.addView(lv);

db.close();
}
}


















 






沒有留言:

張貼留言