상황
- WebView에서 스와이프 새로고침(아래로 당겨서 새로고침) 구현 중 에러 발생
로그 기록을 확인해보니 NullPointerException 에러가 발생했다고 한다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 기타 코드 생략
mWebView.loadUrl("https://www.naver.com");
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
webView.reload();
refreshLayout.setRefreshing(false);
}
});
}
원래는 이런식으로.. onCreate 안에서 loadurl로 웹 사이트를 불러오고, onRefresh() 안에서 reload();를 실행시켰는데, 값이 없다며 계속 에러가 났다. 그래서 따로 주소를 담는 변수를 선언해서 직접 relaod 안에 넣어보기도 했는데 역시나 에러~(어짜피 이럴 경우 매번 그 페이지를 불러와서 사용하지는 못할 방법이지만)
그런데 간단한 한줄로 해결할 수 있었다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 기타 코드 생략
mWebView.loadUrl("https://www.naver.com");
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//webView.reload();
mWebView.loadUrl(mWebView.getUrl());
refreshLayout.setRefreshing(false);
}
});
}
위 처럼 relaod 말고, 다시 loadUrl로 원래 가지고 있던 주소를 불러오는 것이다. 문제해결!
그 외 확인 해볼것
- 자바스크립트를 불러오는 중 에러가 난 경우도 있었다.
webSettings.setJavaScriptEnabled(true); 와 webSettings.setDomStorageEnabled(true); 추가
'Study > Error !' 카테고리의 다른 글
[Android/Bluetoothe] 에러 해결 (0) | 2021.02.15 |
---|---|
[Android] Unable to locate ADB 에러 / 안드로이드스튜디오 휴대폰연결 에러 (0) | 2021.01.29 |
[Android] 에러해결방법 (0) | 2021.01.15 |
[Android] 기기별 해상도 대응 에러/해상도별 폴더 생성/해상도별 xml생성하는 법 (0) | 2021.01.11 |
[Android]안드로이드 스튜디오 TimePickerDialog 여백 없애기, 뒤쪽 배경 지우기 (0) | 2020.07.11 |