2017-03-08 11 views
0

私はFragmentクラスでSensorManagerを使用する必要があるが、私は以下の方法でSensorManagerを初期化するたび:フラグメントクラスでセンサーイベントメソッドを使用するには?

mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); 

Androidのメーカーはそれを受け入れ、エラーを生成しません:

Cannot resolve method

どのようにすることができますfragmentにイベントリスナーを正しく実装していますか?

+0

'getActivity()。getSystemService..' –

+0

感謝しかし、私は、フラグメントにそれのための任意の例があるセンサーのイベントリスナーを実装しようとしていますか? –

+0

たくさんありますが、必要なものだけグーグルにする必要があります –

答えて

0
public class MyFragment extends Fragment implements SensorEventListener { 
private SensorManager mSensorManager; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mSensorManager = (SensorManager)   

this.getActivity().getSystemService(Activity.SENSOR_SERVICE); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.mylayout, container, false); 

    return rootView; 
} 

@Override 
public void onSensorChanged(SensorEvent event) { 
    float x = event.values[0], y = event.values[1]; 
} 

@Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } 

@Override 
public void setMenuVisibility(boolean menuVisible) { 
    super.setMenuVisibility(menuVisible); 

    // First starts (gets called before everything else) 
    if(mSensorManager == null) { 
     return; 
    } 

    if(menuVisible) { 
     this.registerSensorListener(); 
    } else { 
     this.unregisterSensorListener(); 
    } 
} 

@Override 
public void onStart() { 
    super.onStart(); 

    if(this.getUserVisibleHint()) { 
     this.registerSensorListener(); 
    } 
} 

@Override 
public void onStop() { 
    super.onStop(); 
    this.unregisterSensorListener(); 
} 

private void registerSensorListener() { 
    mSensorManager.registerListener(this, 
mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0), 
SensorManager.SENSOR_DELAY_FASTEST); 
} 

private void unregisterSensorListener() { 
    mSensorManager.unregisterListener(this); 
} 

}お返事その作業のための

関連する問題