안드로이드 onItemClick했을때 포지션이 분명히 0으로 찍혔었는데 sharedpreferences 매소드로 다른 클래스에 값을 보내주어서 값을 읽으면 -1로 뜹니다..
조회수 1244회
@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에 보낼 방법 없을까요??
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
setIntPreferences(), getIntPreferences() 함수에서 각각 "pref", "your_pref" 파일에 접근하도록 코드가 작성되어 있습니다. 즉, position을 pref.xml에 저장하고, 값을 읽는 것은 your_pref.xml에서 하기 때문에 디폴트 값인 -1이 반환되는 것 입니다. 하나의 파일에 접근하도록 같은 이름을 사용하세요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력