마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 앱개발 sharepreferences에 대하여

0 추천

안녕하세요 앱개발에 뛰어든지 얼마 안된 새내기 개발자 입니다.

앱에 저장을 해놓았다가 끄면 다시 초기화 되잖아요. 그래서 sharedpreferences?를 이용해서 리스트뷰에 입력된 주소를 앱을 꺼도 사라지지 않게 하려고 하는데요.. 도저히 어떻게 해야할지 모르겠어서 글을 쓰게되었습니다.

소스를 알려주시면 더 감사하겠습니다!! 

일단 제 코딩은 이렇습니다.

public class MyWebToon extends Activity {

    private EditText et_url;
    private Button btn_add;
    private ListView lv_bookmark;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_web_toon);

        init();

        final BookmarkAdapter bookmarkAdapter=new BookmarkAdapter();
        lv_bookmark.setAdapter(bookmarkAdapter);

        btn_add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String url=et_url.getText().toString();

                if(isUrl(url)){
                    Bookmark bookmark=new Bookmark(url);

                    if(bookmarkAdapter.hasDuplicats(bookmark)){
                        showToast(getString(R.string.duplicate));
                    }else{
                        bookmarkAdapter.addBoomark(bookmark);
                        showToast(getString(R.string.complete));
                    }
                }else{
                    showToast(getString(R.string.wrong));
                }

            }
        });
      }
      public void showToast(String message){
          Toast.makeText(this, message,Toast.LENGTH_SHORT).show();
      }

    public boolean isUrl(String url) {
        String urlRegex = "^(file|gopher|news|nntp|telnet|https?|ftps?|sftp)://([a-z0-9-]+.)+[a-z0-9]{2,4}.*$";
        return url.matches(urlRegex);
    }
      public void init(){
        et_url=(EditText) findViewById(R.id.editText);
        btn_add=(Button) findViewById(R.id.button5);
        lv_bookmark=(ListView)findViewById(R.id.list);
      }
}
hoaio (120 포인트) 님이 2018년 10월 4일 질문

1개의 답변

0 추천
    public static void setSharedPreferencesString(String APP_SAVE_NAME, Context context, String key, String value) {
        SharedPreferences sp = context.getSharedPreferences(APP_SAVE_NAME, context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();
        editor.putString(key,value);
        editor.commit();
    }

    public static String getSharedPreferencesString(String APP_SAVE_NAME, Context context, String key) {
        SharedPreferences sp = context.getSharedPreferences(APP_SAVE_NAME, context.MODE_PRIVATE);
            return sp.getString(key, "");
    }

params

set(저장될 xml파일명, context, 키, 값)

get(저장된 xml파일명, context, 키)

단일저장은 이렇게 하시고

여러건 저장하시려면 JSONObject로 String형식으로 쭉 밀어넣으시고

꺼낼때 obj.get(key) 이런식으로 obj를 retrun시키시면 될거같습니다

아니면 그냥 Array형식으로 넣고 꺼내고 하셔도 되고요

 

멈추지말고천천히 (380 포인트) 님이 2018년 10월 4일 답변
멈추지말고천천히님이 2018년 10월 4일 수정
...