0
私は昨日アンドロイドとjavaで始まりました。問題があります。私はいくつかの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];
}
}
}
感謝を教えてください!私は文書の登録手続きを踏んだことはありません。それは今働いています(ish)。私は正しい値を取得しますが、xミリ秒ごとに更新しません。それはonSensorChanged関数とは関係ないと思っていますが、私が使っているループメソッドです。 –
ステップ3をチェックすると、ここでは3番目のパラメータは、いくつかのデフォルトの周波数が利用可能な周波数を変更することができます。私は最後の部分を取得しませんでしたが、ループを使用しないでください、アンドロイドセンサーイベントは、パブリッシャーの加入者のパターンに従います、あなたはこれについて読むことがあります。 –
私の悪いことは、テキストが最初の時間の後に更新されないということです。センサーの更新機能でsetText()を動かすだけで問題を解決しました。本当にありがとう!これは多くを開きます。 –