2014年11月12日 星期三

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

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


 


此範例為程式碼(10\Sample06)的改寫,建立一個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資料庫字串Like條件搜尋功能。
 */
/*
 * <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 LIKE'%筆%'";

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


















 






沒有留言:

張貼留言