안드로이드 onItemClick했을때 포지션이 분명히 0으로 찍혔었는데 sharedpreferences 매소드로 다른 클래스에 값을 보내주어서 값을 읽으면 -1로 뜹니다..


 @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Cursor cursor = (Cursor) parent.getItemAtPosition(position);

            int myId = position;

            final int item_id = cursor.getInt(cursor.getColumnIndex(databaseHelper.USER_TABLE_COLUMN_ID));

            PreferencesUtil.setIntPreferences(ListViewActivity.this,"myId",myId);

 }

PreferencesUtil.java

        public static void setIntPreferences(Context context, String key, int value) {
    SharedPreferences p = context.getSharedPreferences("pref", context.MODE_PRIVATE);
    SharedPreferences.Editor editor = p.edit();
    editor.putInt(key, value);
    editor.commit();
}

public static int getIntPreferences(Context context, String key) {
    SharedPreferences sp = context.getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
    int myIntValue = sp.getInt("your_int_key", -1);
    return myIntValue;
}

다른클래스에서

   int myId = PreferencesUtil.getIntPreferences(detailUserActivity.this,"myId");
   log.i("otherClass","myId = "myId);

로그에 myid=-1이라 뜨네요 ㅜㅜ 아이템 클릭했을때 0번 포지션에있는 아이템 클릭시 0이라는 값을 myId에 보낼 방법 없을까요??

  • 2016년 06월 25일에 작성됨

조회수 166


1 답변


좋아요
2
싫어요
채택취소하기

setIntPreferences(), getIntPreferences() 함수에서 각각 "pref", "your_pref" 파일에 접근하도록 코드가 작성되어 있습니다. 즉, position을 pref.xml에 저장하고, 값을 읽는 것은 your_pref.xml에서 하기 때문에 디폴트 값인 -1이 반환되는 것 입니다. 하나의 파일에 접근하도록 같은 이름을 사용하세요.


  • 감사합니다 덕분에 해결했어요^^    강문준   2016.6.25 17:48     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close