package com.example.record;
import android.app.Activity;
import android.content.Intent;
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;
public class Tab1Activity extends Activity implements SensorEventListener {
static EditText vi,kcal,meter;
TextView text3,kcal2,meter2;
int count=0,kcal0=0,i;
String str = String.format("%d",count);
String str2 = String.format("%d",kcal0);
private long lastTime;
private float speed;
private float lastX;
private float lastY;
private float lastZ;
private float x, y, z;
private static final int SHAKE_THRESHOLD = 800;
@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;
Button btn_reset;
Button btn_start;
Intent intent;
private boolean isEnable;
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_record);
vi = (EditText)findViewById(R.id.tv);
kcal=(EditText)findViewById(R.id.kcal);
meter=(EditText)findViewById(R.id.meter);
kcal2=(TextView)findViewById(R.id.kcal2);
meter2=(TextView)findViewById(R.id.meter2);
text3 = (TextView)findViewById(R.id.textView3);
text3.setVisibility(android.view.View.VISIBLE);
vi.setVisibility(android.view.View.VISIBLE);
kcal.setVisibility(android.view.View.VISIBLE);
kcal2.setVisibility(android.view.View.VISIBLE);
meter.setVisibility(android.view.View.VISIBLE);
meter2.setVisibility(android.view.View.VISIBLE);
vi.setText(str);
kcal.setText(str2);
super.onCreate(savedInstanceState);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
accelerormeterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
btn_start=(Button)findViewById(R.id.btn_start);
btn_reset=(Button)findViewById(R.id.btn_reset);
btn_start.setVisibility(android.view.View.VISIBLE);
btn_reset.setVisibility(android.view.View.VISIBLE);
btn_start.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
isEnable=!isEnable;
btn_start.setText("중단") ;
btn_start.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
btn_start.setText("시작");
onStop();
}
});
}
});
btn_reset.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
count=0;
vi.setText(String.valueOf(count));
kcal0=0;
kcal.setText(String.valueOf(kcal0));
}
});
}
@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(final SensorEvent event) {
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
final long currentTime=System.currentTimeMillis();
final 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 (isEnable && speed > SHAKE_THRESHOLD) {
count++;
str=String.format("%d",count);
vi.setText(str);
kcal0=(count/30);
str2=String.format("%d",kcal0);
kcal.setText(str2);
}
lastX = event.values[DATA_X];
lastY = event.values[DATA_Y];
lastZ = event.values[DATA_Z];
}
}
}
}
만보기 어플인데 현재 btn_start를 누르기전에는 작동을 안하다가 누르면 숫자가 증가합니다.그러다가 다시 누르면 텍스트가 시작으로 바뀌면서 작동을 안하는데요. 이걸 다시 누르면 전에 숫자부터 시작해서 작동시켰다가 다시 누르면 멈추고 이런식으로 반복시키고싶은데 for문도 안먹히고.... 다른게 필요한가요? 도와주세요ㅠㅠ