안녕하세요 ^-^/ 핫핫
16일 노력하여 드디어 다른화려한 어플들에 비하면 별거없지만 즐거움과 흐믓함을 주기 위한 어플을 만들었습니다.
하지만 테스트중 엄청난 결점이 있다는걸 발견했습니다.;
EidtText에 이름을 입력하면 버튼을 눌렀을시 20개의 이미지중에서 무작위로 이미지뷰에 그림하나가 출력되는겁니다.
성공했을때 엄청 기분이 좋았죠.
그런데 ;;
EditText에 똑같은 이름을 입력했으면 원래나왔던 이미지가 계속 기억되서 나와야되는데; 랜덤으로 적용해서 그런지 다른 이미지가 출력되는겁니다.;;
제가 말주변이 없어서 질문을 이해하실지 모르겠네요; 저도 제가 무슨말을 하는건지;
예를 들어 말씀드리면
EditText에 이름을 홍길동 Buttoun을 클릭하면 무작위로 20개중 이미지중 하나 이미지 뷰에 출력
EditText에 이름을 또 홍길동이라고 또입력하면 전에 나왔던 이미지가 계속 기억되서 나와야합니다.
어플 껐다 키면 초기화되도 상관없지만.
어플 실행도중에는 홍길동을 입력하여 무작위로 나온 이미지중 선택되어진 그이미지는 계속 계속나와서 기억되면 좋겠습니다^^;
..
도와주시면 감사드리겠습니다.
랜덤으로 이미지 출력하는 코드 원하시면 다시 올리겠습니다. 몇줄안됩니다; 쿨럭;
대학에서 자바 커리큘럼이 거의 한학기 이상은 넘는다던대; 자바 공부 하나도 안하고 안드로이드 만들면서 자바 책 보면서 하는게 잘못되었던 것일까요ㅠㅠ; 자바를 완벽 마스터하고 안드시작해쓰면 이런질문을 안올려도 됬을까요 ㅠㅠ 제힘으로 도저히 이문제를 해결할수 없네요;. 도와주시면 감사드려요
예를 들어 구체적으로 예제 코드 해주시면 적용해서 +_+ 감사드리죠!!!
제가 홍길동을썻습니다. 그럼 홍길동 = 홍길동.jpg가 최초 랜덤매칭이 되죠.
그럼 이 이후 홍길동을 입력하면 무조건 홍길동.jpg가 나와야 된다라는 말이라면 말씀드린대로 하시면됩니다.
예로
제가 홍길동을 입력했습니다. 그럼 db에는
1|홍길동|홍길동.jpg가 들어가게 되죠.
다시 홍길동을 입력하면 db에는 홍길동이라는 값이 있으니
해당 홍길동.jpg를 출력해주면 되고
입력받은값이 홍길동이라 아니라 강마에라면 db에 강마에라는 값은 없으니
만드신 이미지 랜덤선택을 통해
2|강마에|강마에.jpg를 db에 저장하고 화면에 출력합니다.
그럼 이제 홍길동을 입력하면 db에 값이 있어서 홍길동.jpg가 강마에를 입력하면 강마에.jpg가 출력되고
그이외의 값을 저장하게되면 또 새로 이미지를 뽑아내서 db에 저장하게 되겠죠..?
제가 이해하고 있는게 잘못된것인지요..?
db말고 더 심플하게 쓰시려면 프리퍼런스 쓰시면됩니다.
깊으신 지식에 감탄합니다
sdcard에 text로저장되게해서 하는거랑
St.ring name= m_Write.getText().toString(); 이런식으로 해서 비교하는거랑
다실패해서 ㅠㅠ
프리퍼런스는 아래와 같은걸로 해봤는대 여기서 어떻게 해야 응용 가능할지 알려주시면 안될까요 ㅠㅠ
//EditText에 있는 문자열을 비교
//ge.tPreferences()환경설정파일읽고
//키값으로 기존 String가져와 editText에 string으로 저장
pref = getPreferences(MODE_WORLD_READABLE);
m_Write.setText(pref.getString(KEY_EDIT_TEXT_STRING, null));
//remove()메소드 -특정 환경설정 항목 제거
//clear()메소드 - 모든 환경설정 항목제거
//commit()메소드 - 변경된 사항을 적용
protected void onDestroy() {
Editor editor = pref.edit();
editor.remove(KEY_EDIT_TEXT_STRING);
editor.putString(KEY_EDIT_TEXT_STRING, m_Write.getText().toString());
editor.commit();
super.onDestroy();
};
SharedPreferences prefs = getSharedPreferences("test", MODE_PRIVATE);
String test= prefs.getString("홍길동", "");
홍길동은 EditText에서 입력받은값이 되겠죠.
초기값은 ""로 되있으니 if쳐서 비교하세요.
홍길동이 입력된적이 없으면 "" 값이 티나오고 아니면 String test에 값이 생기겠죠.
if("".equals(test)){
입력된적 없는값이니 해당처리
랜덤선택하셔서 이미지 뷰에 뿌리시고
프리퍼런스 저장
ed.putString(EditText입력값(홍길동),"랜덤선택된 이미지 경로");
ed.commit();
}else {
이경우 이미 입력된적이 있던 값이고 해당 홍길동이라는 이름에 매칭되는 경로가
test라는 스트링으로 티나온 경우니 알아서 처리해주시면 되겠습니다.
}
근데 굳이 이렇게 말고 더 좋은 방법들도 있을거 같다는 생각이 드네요;




db써서 입력된 홍길동과 이미지명을 매칭시키세요.
db에 홍길동이라는 값이 등록되지 않았다면
구성하신 랜덤 이미지 뿜어내는부분으로 돌리시면 되고 값이 있으면 있는값을 출력하면 될거라 생각됩니다.