0
저는 어제 안드로이드와 자바에서 시작했는데 문제가 있습니다. 일부 TextViews 센서의 값을 출력하려면 노력하고있어. 텍스트는 업데이트되지만 정의 된 값으로 설정됩니다. onSensorChanged는이 값을 올바르게 업데이트해야합니까?센서 변경으로 인해 onSensorChanged가 발생하지 않습니다.
import [...]
public class MainActivity extends Activity implements SensorEventListener {
public float[] gravity = {0,0,0};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView gravxTxtView = (TextView) findViewById(R.id.gravxTxtView);
final TextView gravyTxtView = (TextView) findViewById(R.id.gravyTxtView);
final TextView gravzTxtview = (TextView) findViewById(R.id.gravzTxtView);
final Handler handler = new Handler();
handler.postDelayed(
new Runnable() {
@Override
public void run() {
gravxTxtView.setText("Gravity x: " + Float.toString((gravity[0])));
gravyTxtView.setText("Gravity y: " + Float.toString((gravity[1])));
gravzTxtview.setText("Gravity z: " + Float.toString((gravity[2])));
}
}, 500);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
gravity[0] = event.values[0];
gravity[1] = event.values[1];
gravity[2] = event.values[2];
}
}
}
감사를 알려 주시기 바랍니다! 나는 문서에서 regisering 단계를 넘어선 적이 없다. 지금 일하고있어. 올바른 값을 얻지 만 x 밀리 초마다 업데이트하지 않습니다. onSensorChanged 함수와 관련이 있다고 생각하지 말고 내가 사용하고있는 루프 메서드를 사용하십시오. –
3 단계를 확인하십시오. 여기에서 세 번째 매개 변수는 기본 주파수를 사용할 수있는 주파수를 변경할 수 있습니다. 나는 마지막 부분을 얻지 못했지만 루프를 사용하지 않고, 안드로이드 센서 이벤트는 게시자 구독자 패턴을 따른다. –
나의 나쁜, 내가 의미하는 것은 텍스트 doensn't 첫 번째 시간 후에 업데이 트됩니다. 센서 업데이트 기능에서 setText()를 단순히 이동하여 문제를 해결했습니다. 무리 감사! 이것은 많은 것을 열어줍니다. –