package com.example.t101_mysql;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
入力値 double MySQLに格納
@author
public class Main extends Activity {
Context context;
LinearLayout base;
LinearLayout lInput;
View mView;
Paint paint;
ArrayList<String> list = new ArrayList<String>();
EditText et0, et1;
DatabaseHelper dbHelper;
CharSequence[] dbCursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = getApplicationContext();
base = new LinearLayout(context);
setContentView(base);
base.setOrientation(LinearLayout.VERTICAL);
lInput = new LinearLayout(context);
mView = new View(context) {
@Override
public void onDraw(Canvas canvas) {
canvas.drawText("ArrayListから", 10, 20, paint);
for (int i = 0; i < list.size(); i++) {
canvas.drawText(list.get(i), 10, 40 + 12 * i, paint);
}
SQLiteDatabase db = dbHelper.getReadableDatabase();
String sql = "select * from LatLngTable where del_flg = 0;";
Cursor c = db.rawQuery(sql,null);
c.moveToFirst();
Double[][] list = new Double[c.getCount()][2];
for(int i=0;i<list.length;i++){
list[i][0] = c.getDouble(1);
list[i][1] = c.getDouble(2);
c.moveToNext();
}
c.close();
db.close();
canvas.drawText("DBから", 200, 20, paint);
for(int i=0;i<list.length;i++){
String str = "lat="+list[i][0]+",lng="+list[i][1];
canvas.drawText(str, 200, 40 + 12*i, paint);
}
}
};
base.addView(lInput);
base.addView(mView, new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, 0, 1.0f));
paint = new Paint();
paint.setAntiAlias(true);
paint.setTextSize(12);
et0 = new EditText(context);
et1 = new EditText(context);
et0.setInputType(InputType.TYPE_CLASS_NUMBER);
et1.setInputType(InputType.TYPE_CLASS_NUMBER);
Button btn = new Button(context);
btn.setText("SQLへ追加");
lInput.addView(et0);
lInput.addView(et1);
lInput.addView(btn);
dbHelper = new DatabaseHelper(context, "MyDb", null, 1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String strData0 = et0.getText().toString();
String strData1 = et1.getText().toString();
Double doubleData0 = Double.parseDouble(strData0);
Double doubleData1 = Double.parseDouble(strData1);
addInfo(doubleData0 , doubleData1);
dbInsert(doubleData0 , doubleData1);
mView.invalidate();
}
});
}
private void addInfo(Double lat , Double lng) {
list.add("lag="+lat+",lng="+lng);
}
private void dbInsert(Double lat , Double lng) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "";
sql += "insert into LatLngTable ";
sql += "(lat , lng ) values ";
sql += "(" + lat + "," + lng + ");";
db.execSQL(sql);
db.close();
}
}
DatabaseHelper.java
package com.example.t101_mysql;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context, String fileName, CursorFactory factory,
int version) {
super(context, fileName, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "";
sql += "create table LatLngTable (";
sql += " no INTEGER primary key autoincrement";
sql += ",lat REAL not null";
sql += ",lng REAL not null";
sql += ",del_flg integer DEFAULT 0";
sql += ")";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}