1

私はJavaとAndroidのプログラミング言語に不慣れで、これは私が研究した最初のプラットフォームです。このメソッドでevent.values[1]にアクセスするにはどうすればよいですか?

public void onSensorChanged(SensorEvent event) {synchronized (this){
    if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)

        return;
    mAccVals.x = (float) (event.values[1] * FILTERING_FACTOR + mAccVals.x * (1.0 - FILTERING_FACTOR));
    //mAccVals.y = (float) ((-event.values[1] * FILTERING_FACTOR + mAccVals.y * (1.0 - FILTERING_FACTOR)));
    mAccVals.z = (float) (event.values[2] * FILTERING_FACTOR + mAccVals.z * (1.0 - FILTERING_FACTOR));

    scene.camera().position.x = mAccVals.x * .2f;
    scene.camera().position.z = mAccVals.z * .8f;

    scene.camera().target.x = -scene.camera().position.x;
    scene.camera().target.z = -scene.camera().position.z;

}

event.values [1]を取得して、テキストビューに表示したい

protected void onCreateSetContentView()
{   
    setContentView(R.layout.custom_layout_example); 
        LinearLayout ll = (LinearLayout) this.findViewById(R.id.scene1Holder);
        ll.addView(_glSurfaceView);
        TextView myTextView = (TextView) findViewById(R.id.splashTitle); 
        myTextView.setText("Test " + event.values[1]  );
        return;                  
 }

この問題をどのように解決できるかについての提案はありますか?前もって感謝します

4

1 に答える 1

1

にフィールドを作成し、Activityそれをあなたに割り当てますR.id.splashTitle

TextView mTextView;
...
protected void onCreateSetContentView() {
    mTextView = (TextView) findViewById(R.id.splashTitle);
    ...
}

次に、テキストonSensorChanged()を次のように設定します。

public void onSensorChanged(SensorEvent event) {
    mTextView.setText("Test " + event.values[1]);
    ...
}

または、最新のセンサーの値をフィールドに保存することもできます。

// Class field
float[] mSensorValues;
// In onSensorChanged()
mSensorValues = event.values;
// In onCreateSetContentView()
myTextView.setText("Test " + mSensorValues[1]);

の正しいシーケンスを保持するonCreateには、ドキュメントonSensorChangedで説明されているアプローチを使用できます。

protected void onResume() {
     super.onResume();
     mSensorManager.registerListener(this, mAccelerometer,
                                     SensorManager.SENSOR_DELAY_NORMAL);
 }

 protected void onPause() {
     super.onPause();
     mSensorManager.unregisterListener(this);
 }
于 2012-06-12T12:48:13.403 に答える