저는 많은 센서를 사용할 응용 프로그램을 만들고 있습니다. 각 센서는 내부 데이터베이스에 직접 값을 기록하므로 각 센서에는 자체 클래스가 있습니다.여러 센서를 하나의 ACtivity로 통합하십시오.
하나의 활동 ActivityRecord에는 센서 클래스에서 책임있는 메소드의 활성화를 실행하는 버튼이 있습니다.
public void onSensorChanged(SensorEvent event) {
lightLux = event.values[0]; //Final output of this sensor.
Lux = String.valueOf(lightLux);
Log.d("LightSensor", Lux);
TextView tvLightSensorLux = (TextView) findViewById(R.id.tvLightSensorLux);
tvLightSensorLux.setText(Lux);
}
lightLux는 플로트 출력 또는 럭스 문자열 출력되는 : 들어
RecordButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Start/Stop Recording
if (!isRecording) {
startRecording();
RecordButton.setText("Stop Recording");
} else {
stopRecording();
RecordButton.setText("Start Recording");
}
}
});
return rootView;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
private void startRecording() {
isRecording = true;
//Light Sensor stuff here
}
는 지금은 최종 출력으로 그렇게하는 LightSensor.java 클래스가 있습니다. 그래서 FragmentRecord.java에서 나는 LuxS의 LightSensor lightLux 나 setText의 출력을 tv에 보여주고 싶습니다.
질문 : LightSensor.java에서 lightLux 및 Lux 값을 FragmentRecord.java로 가져 오는 방법은 무엇입니까? 이것은 내가 앞으로 만들 모든 다른 센서에도 적용됩니다.
내가 업데이트 할 일이있을 때 이미
cool. 그래서 저는 각 * Sensor.java에서 인터페이스를 추가하거나 작성한다는 것을 알고 있습니다. 모든 센서 출력이 표시되어야하는 통합보기에서보기는 각 개별 인터페이스에 연결해야합니다. 각 Sensor.interface가 변경되면 자체적으로 업데이트되는 동안 통합보기 (ActivityRecord)의 UI에 업데이트가 전송됩니까? –
실제로 다시 힌트를 다시 읽으면, 나는 그것을 뒤로 이해했다고 생각합니다. ActivityRecord에서 OnSensorChanges 인터페이스를 삽입해야합니다. 각 센서에는 해당 방법에 대한 참조가 있어야합니다. 기본적으로 각 * Sensor.java가 업데이트되면 UI 업데이트를 위해 해당 인터페이스로 업데이트를 보냅니다. –
한 가지 더 질문 : ActivityRecorder는 그래프 및 숫자와 같은 센서의 결과를 보여주는 레이아웃이므로 ActivityRecorder가 모든 센서를 수신하는 수신기 클래스 여야한다고 생각합니까? 또는 모든 브로드 캐스트를 수락하고 Receiver에서 Recorder로 업데이트를 가져 오는 별도의 Receiver.java를 만드는 것이 더 낫습니까? 아니면 제가 이미 가지고있는 것과 똑같은 문제입니까? –