마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼클릭시 만보기가 돌아가게 하고싶은데요...

0 추천
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;
	String str = String.format("%d",count);
	String str2 = String.format("%d",kcal0);
	String str3 = String.format("%lf",meter2);
    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;
  

    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) {
				
				intent = new Intent(Tab1Activity.this,Tab3Activity.class);
				btn_start.setText("중단");
				
								
			}
		});
        
        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(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);
        	 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를 누르면 중단이라는 텍스트변환과 함께 만보기가 돌아가게하고싶은데요...

OnclickListener를 사용하니까 계속 오류나드라고요

어디를 바꿔야할까요ㅠㅠ

그리고 덧붙여 btn_start버튼을 누르면 만보기 기능이 되고 중단으로 버튼이 바뀌는데 그 중단버튼을 다시 누르면 시작으로 텍스트가 바뀌고 아무리 흔들어도 만보기 숫자가 안올라가게 하고싶습니다 도와주세요ㅠㅠ

3일째 고민하고 있네요.....흑

익명사용자 님이 2013년 11월 29일 질문

1개의 답변

0 추천
XML 코드도 올려주실수잇나요?
xdjsl123123 (140 포인트) 님이 2020년 5월 7일 답변
...