このクラスは、電話機が上を向いているときと、下向きにして画面にプリントするときを検出するクラスです。匿名クラスからメソッドを呼び出す方法
package com.example.kyriakos.androiddetectflipping;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
import java.util.List;
public class Test extends Activity {
SensorManager sensorManager;
Sensor accelerometerSensor;
boolean accelerometerPresent;
TextView face;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_android_detect_flipping);
face = (TextView)findViewById(R.id.face);
sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
if(sensorList.size() > 0){
accelerometerPresent = true;
accelerometerSensor = sensorList.get(0);
}
else{
accelerometerPresent = false;
face.setText("No accelerometer present!");
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if(accelerometerPresent){
sensorManager.registerListener(accelerometerListener, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
protected void onStop() {
super.onStop();
if(accelerometerPresent){
sensorManager.unregisterListener(accelerometerListener);
}
}
public SensorEventListener accelerometerListener = new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}
@Override
public void onSensorChanged(SensorEvent arg0) {
float z_value = arg0.values[2];
if (z_value >= 0){
face.setText("Face UP");
}
else{
face.setText("Face DOWN");
}
}};
}
は今、私は別のクラスからのメッセージを印刷したい
package com.example.kyriakos.androiddetectflipping;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class Flip extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_activity);
}}
私はこの
ようにフリップクラス内onSensorChangedメソッドを呼び出そうとしましたので、それがonSensorChangedメソッドは、メッセージを印刷するための責任があると思いますSensorEventListener ob = new SensorEventListener();
ob.onSensorChanged;
SensorEventListenerは匿名の内部クラスなので間違っています!!私の質問はこのメソッドをどのように呼び出すことができるのですか?メソッドf匿名の内部クラスですが、私は非常によく理解していません。私の質問がばかだが、私はJavaに新しい、アンドロイドと私は学ぶことを勉強しようとしています
ここで、そのメソッドを呼び出すとしますか? 'Flip onCreate()'メソッドの中にありますか? – developer
はい私はFlipクラスの中でそれを呼びたい – Kyriakos
'onSensorChanged'メソッドを呼び出すには' SensorEvent 'オブジェクトが必要ですか?私はあなたのコードに 'SensorEvent'オブジェクトanywereが見つかりませんでした – developer