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

listview adapter 에서 item들을 모두 sharedpreference에 넣어서 테스트중인데 오류가 발생

0 추천

안녕하세요.

listview adapter를 통해 listview에 아이템들을 출력하고

그리고 난 후 필터링까지 했습니다.

그리고 listview에서 아이템을 들어갔을 경우 해당 item의 상세 내용을 알려주고 

그 후 즐겨찾기를 추가하면 

즐겨찾기한 아이템만 추가적으로 보여줄려고 하는데.

계속 오류가 나서 이렇게 글을 올립니다.

우선 즐겨찾기 한것보다 전체 item을 sharedpreference에 저장을 한 후 즐겨찾기에서 전체 저장된 부분을 

출력하여 테스트 하는데도 오류가 나서 이렇게 글을 남깁니다.

 

fragment 에서 item들 추가

        mListView= (ListView) view.findViewById(R.id.recipe_listview);
        adapter = new ListViewAdapter(getActivity()) ;
        recipe_additem();
        mListView.setAdapter(adapter) ;
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id){
                int imgRes = ((ListViewItem)adapter.getItem(position)).getResId();
                String pos = String.valueOf(imgRes);
                Log.d(TAG,"포지션 값 보자:"+pos);
                Intent detail_activity = new Intent(getActivity(), detailActivity.class);
                detail_activity.putExtra("detail",pos);
                startActivity(detail_activity);
            }
        }) ;
 public void recipe_additem(){
          adapter.addItem(0,ContextCompat.getDrawable(getActivity(), R.mipmap.sweetpotato), getResources().getString(R.string.ricegruel),getResources().getString(R.string.r1));
          adapter.addItem(1,ContextCompat.getDrawable(getActivity(), R.mipmap.zucchini), getResources().getString(R.string.ricegruel),getResources().getString(R.string.r2));
          adapter.addItem(2,ContextCompat.getDrawable(getActivity(), R.mipmap.bokchoy), getResources().getString(R.string.ricegruel),getResources().getString(R.string.r3));
}

 

listviewadapter

아래에서 sharedPreference에 모든 아이템을 추가할려고 하니.. 하단부와 같은 에러 발생하였습니다.

private List<ListViewItem> listViewItemList = new ArrayList<ListViewItem>() ;
 public void addItem(int count, Drawable icon, String title, String desc) {
        sharedPreference = new SharedPreference();
        ListViewItem item = new ListViewItem();
        item.setResId(count);
        item.setIcon(icon);
        item.setTitle(title);
        item.setDesc(desc);
        if(SharedPreferenceUtil.getSharedPreference(textcontext,String.valueOf(count))!=null) {
            item.setFavorite("favorite");
        }else{
            item.setFavorite(null);
        }
        listViewItemList.add(item);
        sharedPreference.addFavorite(textcontext, listViewItemList.get(count));
    }

 

에러

  java.lang.RuntimeException: Unable to start activity ComponentInfo{company.nuc.testapp.kuvings_app/company.nuc.testapp.kuvings_app.MainActivity}: java.lang.IllegalArgumentException: class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations


  Caused by: java.lang.IllegalArgumentException: class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations
     at company.nuc.testapp.recipe.SharedPreference.storeFavorites(SharedPreference.java:33)
                                                                                   at company.nuc.testapp.recipe.SharedPreference.addFavorite(SharedPreference.java:63)
                                                                                   at company.nuc.testapp.recipe.ListViewAdapter.addItem(ListViewAdapter.java:118)
                                                                                   at company.nuc.testapp.recipe.RecipeFragment.recipe_additem(RecipeFragment.java:127)
                                                                                   at company.nuc.testapp.recipe.RecipeFragment.onCreateView(RecipeFragment.java:74)

sharedpreferece

아래 사이트 바탕으로 하였습니다.

http://androidopentutorials.com/android-how-to-store-list-of-values-in-sharedpreferences/

쿠쿠부다스 (6,470 포인트) 님이 2017년 8월 23일 질문

1개의 답변

0 추천
보내준 링크에 보면 savefavorite에서
FAVORITES 라는 값에 저장했네요.

그러면 가져올때도 그 값으로 가져와야 합니다.

SharedPreference로된 간단한 샘플 몇개만 실햍해보면 금방 파악할겁니다.
Will Kim (43,170 포인트) 님이 2017년 8월 23일 답변
가져올때 발생하는것이 아니고 add할때 위오 같은 에러가 발생했습니다.
...