java - 如何让片段中的传感器通过按钮单击来启动和停止?
问题描述
第一次发帖,感觉有点像在古代呼唤神灵。请善待亲爱的天体编程实体,我不想牺牲我的猫:(
问题:尝试在根据开关位置启动和停止的片段中实现计步器,但我不明白我需要将哪个 SensorEventListener-context 传递给我尝试在 onCheckedChanged() 中实现的 registerListener() 方法-方法。我试过这个,getContext(),getApplication()但无济于事。
那么,stackoverflow 的伟大预言,哪些是正确的输入词?
public class StepCounterFragment extends Fragment implements SensorEventListener {
//declare layout elements
private SwitchMaterial switchMaterial;
private TextView setSteps;
private Button reset;
//declare sensor elements
private Sensor sensorStepCounter;
private SensorManager sensorManager;
public StepCounterFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//implement layout elements
View rootView = inflater.inflate(R.layout.fragment_step_counter, container, false);
switchMaterial = rootView.findViewById(R.id.switch_stepCounter);
setSteps = rootView.findViewById(R.id.tv_stepcount);
reset = rootView.findViewById(R.id.btn_resetSteps);
//implement sensor elements
sensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);
sensorStepCounter = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
switchMaterial.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
if (sensorStepCounter != null) {
sensorManager.registerListener(getContext(), sensorStepCounter, SensorManager.SENSOR_DELAY_NORMAL);
}
} else {
}
}
});
return rootView;
}
@Override
public void onSensorChanged(SensorEvent event) {
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
解决方案
推荐阅读
- python - Bokeh - 单击点时创建固定标签
- php - 命名空间无法正确解析
- php - 授权期间 Docker、nginx、phpmyadmin 重定向错误
- go - 如何在 golang 中进行 spf 记录查找和检查?
- python-3.x - 在 python 中构造一个对象来引导'。' 访问属性
- return-value - 在优步司机应用程序上导入行程最终价格
- python - 在 Python 中对这个函数进行单元测试的最佳方法是什么?
- kotlin - 在 Kotlin 中,start 和 first 有什么区别?
- if-statement - 使用接口时检查变量类型是否为零
- asp.net-mvc - .net core 3.0实体无限循环