[Android Tutorial] 웹툰 뷰어 제작 – 4) SharedPreference 활용
지난 포스팅에서 웹툰을 보여주는 기능까지는 넣었는데, 다른 웹툰을 볼 수 있는 기능과 로딩중 표시는 다루지 않았다. 다음에 다룬다고 하고 무려 석달이나 지나 이제야 다루게 됐다. 이제는 정말로 끝! 내용은 많지 않은데 너무 길게 늘인 것 같은 자기반성과 함께 ![]()
목차
1. 연재 정보 받아오기 – XML Parsing
2. 원하는 형태의 리스트로 만들기 – ListView
3. 웹툰 본편 보여주기 – WebView
4. 다른 웹툰 보기 & 로딩 표시 + 소스 공개 – SharedPreference
Fragment 간의 데이터를 전달하기 위해서 전역 변수를 선언해서 쓰는 방법도 있겠지만, 개인적인 편의상 SharedPreference를 썼다. 보통 설정값을 저장해서 다음에 앱을 실행될 때까지 저장해놓는 용도로 사용한다.
MenuFragment.java
private SharedPreferences pref;
SharedPreferences.Editor editor;
String[] data = { "파인", "좋아하면 울리는" };
pref = getActivity().getSharedPreferences("myinfo", Context.MODE_PRIVATE);
listView.setOnItemClickListener(new ListView.OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View vi, int pos, long id) {
Fragment newContent = null;
switch (pos) {
case 0:
newContent = new ListFragment();
editor.putString("toon", "farin");
editor.putString("title", "파인");
editor.commit();
break;
case 1:
newContent = new ListFragment();
editor.putString("toon", "joalarm");
editor.putString("title", "좋아하면 울리는");
editor.commit();
break;
}
if (newContent != null)
switchFragment(newContent);
}
});
메뉴마다 제목과 rss 피드명을 저장하고, 이 값은 ListFragment 에서 불러와서 사용한다.
ListFragment.java
pref = getActivity().getSharedPreferences("myinfo", Context.MODE_PRIVATE);
textTitleBar.setText(pref.getString("title", ""));
그리고 리스트를 부를 때 로딩 중에는 ProgressDialog 를 보여주는 부분이 필요한데, 아래와 같이 간단히 구현이 가능하다.
ListFragment.java
private class GetData extends AsyncTask<Void, Void, List<Item>> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("데이터 로딩 중...");
pDialog.show();
}
@Override
protected void onPostExecute(List<Item> result) {
if (null != pDialog && pDialog.isShowing())
pDialog.dismiss();
중략
}
}
이렇게까지 하면 일단 기본적인 웹툰 뷰어가 만들어진다. 웹툰 목록을 어드민에서 관리한다든가, 어디까지 봤는지 표시한다든가, 그런 기능은 부차적으로 만들어 볼 수 있겠지만 포스팅은 여기까지.
관련된 소스들은 링크를 통해 받아볼 수 있다. 파일 다운로드
Array