이 부울 값이 false 인 경우에만 위치 업데이트가 요청되도록 부울 값을지도 조각에 전달하려고합니다.
이 부울 값의 값은 버튼 클릭 이벤트에 따라 변경됩니다.
RequestLocationUpdatesListener (인터페이스)
public interface RequestLocationUpdatesListener {
void onRequestLocationUpdates(boolean recording);
}
위치 업데이트 요청 (주요 활동)
// Turn on location updates and pass to fragment
mButtonRecord.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG_CONTEXT, "Start Recording clicked.");
mRequestLocationUpdates = true; // boolean value
mRequestingLocationUpdates = new RequestLocationUpdatesListener() {
@Override
public void onRequestLocationUpdates(boolean recording) {
recording = mRequestLocationUpdates;
mRequestingLocationUpdates.onRequestLocationUpdates(recording);
}
};
}
});
지도 조각
Log.i는 내 MapFragment에서 액세스되지 않습니다. 내가 무엇을 놓치고 있습니까?
@Override
public void onRequestLocationUpdates(boolean recording) {
Log.i(TAG_CONTEXT, "Recording? = " + recording);
}
문제는 매번 onClick 이벤트에서 새로운 리스너를 생성한다는 것입니다.
mRequestingLocationUpdates
인터페이스를 구현하는 조각을 가리키는 변수 가 있어야합니다 . 따라서 MapFragment를 생성 할 때마다이 변수를 MapFragment로 설정해야합니다.
예를 들어 onCreate에서 MapFragment를 생성하면 다음과 같이됩니다.
@Override
protected void onCreate() {
// Other code
MapFragment mapFrag = new MapFragment();
// Now register your fragment as the listener
mRequestingLocationUpdates = mapFrag;
// Other code..
}
이제 조각에 대한 참조가 있으며 다음과 같이 onClick 이벤트에서이를 호출 할 수 있습니다.
// Turn on location updates and pass to fragment
mButtonRecord.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG_CONTEXT, "Start Recording clicked.");
mRequestLocationUpdates = true; // boolean value
mRequestingLocationUpdates.onRequestLocationUpdates( mRequestLocationUpdates );
}
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다