MapView내에 ListView 포함 사용하는데요. onfigChanges=orientation속성을 주어서 화면을 가로 세로 전환시에도
지도는 그대로 유지가 되는데 ListView는 유지가 안되요--;;
ListView의 항목을 선택하면 배경이 회색으로 변경되거든요. 화면전환시에도 동일한 효과와 위치설정이 되어 있으면 좋겟는데..
제가 시도해본 방법은 첫번째 방법입니다.
1. 우선 ListView에 setSelector속성을 이용해 선택된 항목은 회색으로 변경되도록 하였고요.
2. getView내에 list.setSelection을 이용하여 세로에서 가로로 전환시 해당 위치로의 이동은 성공하였으나 색상변환이 안되네요.(onfigChanges=orientation)
두번째 방법은 orientation속성을 제거한 방법입니다.
1. MapView에서 onSaveInstanceState, onRestoreInstanceState를 이용하여 ListView의 onSaveInstanceState값을 불러와 onResume시
재사용하는 방법을 사용하였습니다.
2. 이때 문제는 MapView자체도 초기값으로 ListView도 초기값으로 된다는 문제가 있더군요.
흠...단순히 ListView.setSelection만 이용하면 ListView에 선택된 효과가 나올줄 알았더니 이동만 되네요.
혹시 해결 방법이 있을까요?
매니페스트 파일에 onfigChanges=orientation 는 OS에서 화면 전환 처리를 하는 것을 막고
대신 내가 직접 컨트롤 하겠다는 의미로 알고 있어요.
그래서 onConfigurationChanged 메서드를 재정의해서 사용해야 해요.
listview lv라 하고 선택된 위치를 int position이라 하면..
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == getResources().getConfiguration().ORIENTATION_LANDSCAPE) {
lv.setSelection(position);
} else {
lv.setSelection(position);
}
}
이런식으로 처리해야 할꺼예요..




listView.getSelectedView().performClick() 안해봐서 될지 모르겠지만 한번 해보세요