mport 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.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.PopupWindow; import android.widget.TextView; public class MainActivity extends Activity implements SensorEventListener { private SensorManager manager; private Sensor detectorSensor; private Sensor stepCntSensor; private int stepcount = 0; boolean isTimely = false; TextView textview; TextView textview2; TextView textview3; boolean flag; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview = (TextView) findViewById(R.id.textview); textview2 = (TextView) findViewById(R.id.textview2); textview3 = (TextView) findViewById(R.id.textview3); manager = (SensorManager) getSystemService(SENSOR_SERVICE); //センサマネージャからTYPE_STEP_DETECTORについての情報を取得する。 detectorSensor = manager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR); //センサマネージャからTYPE_STEP_COUNTERについての情報を取得する。 stepCntSensor = manager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); } @Override protected void onResume() { super.onResume(); manager.registerListener(this, stepCntSensor, SensorManager.SENSOR_DELAY_NORMAL); manager.registerListener(this, detectorSensor, SensorManager.SENSOR_DELAY_NORMAL); flag=true; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; float[] values = event.values; if (sensor.getType() == Sensor.TYPE_STEP_COUNTER) { CheckBox check=(CheckBox)findViewById(R.id.checkbox); Log.d("type_step_counter", String.valueOf(values[0])); textview2.setText("STEP_COUNTER=" + String.valueOf(values[0] + "歩")); if (check.isChecked()) { if (isTimely) { if(flag){ Intent intent = new Intent(MainActivity.this, Pop.class); startActivity(intent); flag=false; } isTimely = true; } if (sensor.getType() == Sensor.TYPE_STEP_DETECTOR) { Log.d("type_detector_counter", String.valueOf(values[0])); textview.setText("STEP_DETECTOR=" + stepcount + "歩"); stepcount++; } } } @Override protected void onPause() { super.onPause(); //リスナーの解除 manager.unregisterListener(this, stepCntSensor); manager.unregisterListener(this, detectorSensor); } }
このプログラムで画面遷移を使用としているのですが、現状はOnSensorChengedの中身でisTimelyがfalseからtrueに変更されてから画面遷移のプログラムが動いた段階で落ちています。
public class Pop extends MainActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.popup); Button btn=(Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ finish(); } }); } }
こちらのプログラムに遷移したいのですが、アプリの強制終了してしまう理由がわかりません。
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。