Tab1Activity.java
package com.example.record;
import android.app.Activity;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Tab1Activity extends Activity implements SensorEventListener {
EditText vi;
TextView textView3;
Button btn_reset,btn_start;
static Button btn_in;
int count=0;
String str = String.format("%d",count);
myDBHelper myHelper;
SQLiteDatabase sqlDB;
private long lastTime;
private float speed,lastX,lastY,lastZ;
private float x, y, z;
private static final int SHAKE_THRESHOLD = 2400;
@SuppressWarnings("deprecation")
private static final int DATA_X = SensorManager.DATA_X;
@SuppressWarnings("deprecation")
private static final int DATA_Y = SensorManager.DATA_Y;
@SuppressWarnings("deprecation")
private static final int DATA_Z = SensorManager.DATA_Z;
private SensorManager sensorManager;
private Sensor accelerormeterSensor;
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_record);
vi = (EditText)findViewById(R.id.tv);
vi.setText(str);
super.onCreate(savedInstanceState);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerormeterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
btn_reset=(Button)findViewById(R.id.btn_reset);
btn_start=(Button)findViewById(R.id.btn_start);
btn_in=(Button)findViewById(R.id.btn_in);
btn_in.setVisibility(android.view.View.VISIBLE);
btn_reset.setVisibility(android.view.View.VISIBLE);
btn_start.setVisibility(android.view.View.VISIBLE);
vi.setVisibility(android.view.View.VISIBLE);
//textView3.setVisibility(android.view.View.VISIBLE);
btn_reset.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
count=0;
vi.setText(String.valueOf(count));
}
});
myHelper = new myDBHelper(this);
btn_in.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sqlDB = myHelper.getWritableDatabase();
sqlDB.execSQL("INSERT INTO groupTBL VALUES ( '" + str + ");");
sqlDB.close();
Toast.makeText(getApplicationContext(), "입력됨", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void onStart() {
super.onStart();
if (accelerormeterSensor != null)
sensorManager.registerListener(this, accelerormeterSensor,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
public void onStop() {
super.onStop();
if (sensorManager != null)
sensorManager.unregisterListener(this);
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@SuppressWarnings("deprecation")
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
long currentTime=System.currentTimeMillis();
long gabOfTime=(currentTime-lastTime);
if(gabOfTime>100){
lastTime=currentTime;
x = event.values[SensorManager.DATA_X];
y = event.values[SensorManager.DATA_Y];
z = event.values[SensorManager.DATA_Z];
speed = Math.abs(x+y+z-lastX-lastY-lastZ)/gabOfTime * 10000;
if (speed > SHAKE_THRESHOLD) {
count++;
str=String.format("%d",count);
vi.setText(str);
}
lastX = event.values[DATA_X];
lastY = event.values[DATA_Y];
lastZ = event.values[DATA_Z];
}
}
}
public class myDBHelper extends SQLiteOpenHelper {
public myDBHelper(Context context) {
super(context, "groupDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE groupTBL (gNumber INTEGER);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS groupTBL");
onCreate(db);
}
}
}
Tab3Activity.java
package com.example.record;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Tab3Activity extends Activity {
TextView text2;
LinearLayout linear3;
EditText edit1, edit2;
myDBHelper myHelper;
Button btn_in;
int count;
SQLiteDatabase sqlDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
text2 = (TextView)findViewById(R.id.textView2);
linear3 = (LinearLayout)findViewById(R.id.LinearLayout3);
edit1 = (EditText)findViewById(R.id.editText1);
edit2 = (EditText)findViewById(R.id.editText2);
btn_in = (Button)findViewById(R.id.btn_in);
text2.setVisibility(android.view.View.VISIBLE);
edit1.setVisibility(android.view.View.VISIBLE);
edit2.setVisibility(android.view.View.VISIBLE);
btn_in.setBottom(Tab1Activity.btn_in.getBottom());
btn_in.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("unused")
public void onClick(View v) {
Intent intent = getIntent();
sqlDB = myHelper.getReadableDatabase();
Cursor cursor;
cursor = sqlDB.rawQuery("SELECT * FROM groupTBL;", null);
String strNames = "걸음수" + "\r\n" + "--------" + "\r\n";
while (cursor.moveToNext()) {
strNames += cursor.getString(0) + "\r\n";
}
edit1.setText(strNames);
cursor.close();
sqlDB.close();
}
});
}
public class myDBHelper extends SQLiteOpenHelper {
public myDBHelper(Context context) {
super(context, "groupDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE groupTBL (gNumber INTEGER);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS groupTBL");
onCreate(db);
}
}
}
tab1activity는 만보기 소스인데 만보기가 작동은 합니다
근데 만보기가 작동하다가 btn_in버튼을 누르면 데이터베이스가 생성이 되면서 tab3activity에 출력이 되게 할려고하는데요
책보면서 소스는 오류가 없고 다 맞는데 btn_in버튼을 누르면 어플이 중지되었다고 합니다....
다르게도 해봤는데 데이터베이스 생성이 아예안되네요
어디가 잘못된거죠? 도와주세요ㅠㅠ