안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 ^^ 현재 화면구성은
메인화면 -> 버튼클릭시 -> spinner가 포함된 dialog 출력
이런식에 구조로 되어있습니다.
spinner에 데이터를 넣어주고 싶은데 잘 안되네요..
onCreate(.. )
onCreateDialog( ... )
로 되어있어서 spinner를 초기화해야하는 시점이 onCreateDialog 이부분일듯하여
// dialog 구성부분
@Override
protected Dialog onCreateDialog(int id) {
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);
spn1 = (Spinner)findViewById(R.id.spin_loc_city);
spn1.setPrompt("패키지를 선택하세요.");
mAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, spn1_list );
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn1.setAdapter(mAdapter);
return new AlertDialog.Builder(cooktown.this)
//.setIcon(R.drawable.icon)
.setTitle(R.string.favorite_location_title)
.setView(textEntryView)
.setPositiveButton("확인", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked OK so do some stuff */
}
})
.setNegativeButton("취소", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked cancel so do some stuff */
}
})
.create();
}
위와 같이 주었더니 에러가 나네요;;
그래서 onccreate에다가도 놓아봤는데 마찬가지로 에러가 나고요;; 에러는 NullpointException이였습니다.
어지해야될까요?
그렇다면 findViewById 를 하실 때 textEntryView.findViewById를 해주셔야 제대로 찾아 낼듯 하네요.
일단 제가 볼땐 해당 부분 때문에 오류가 나실 듯 합니다.
위 소스처럼 하면 당연히 현재 View 에서 spin_loc_city 를 찾을 테고 그랬을 경우 해당 오류가 발생 할 겁니다.