안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
날씨어플을 구축중인 대학생입니다.
파싱받아서 텍스트뷰에 뿌려주는 날씨예제를 받아서 사용해봤는데요,
텍스트가 아닌 알림창(AlertDialog)으로 뿌려주고싶은데..
교제에 있는 책 참고하면서 작성해봤는데 잘안되네요 흑흑..
소스 붙히겠습니다.
public void onClick(View V) {
TextView tv = (TextView)findViewById(R.id.textview1);
if( V.getId() == R.id.button1){
//버튼1 눌렀을때
AlertDialog.Builder alert = new AlertDialog.Builder(DemoActivity.this);
alert.setTitle("주간날씨");
alert.setMessage();
try {
String html = loadKmaData();
//DOM 파싱.
ByteArrayInputStream bai = new ByteArrayInputStream(html.getBytes());
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//dbf.setIgnoringElementContentWhitespace(true);//화이트스패이스 생략
DocumentBuilder builder = dbf.newDocumentBuilder();
Document parse = builder.parse(bai);//DOM 파서
//태그 검색
NodeList datas = parse.getElementsByTagName("data");
//String result = "data태그 수 =" + datas.getLength()+"\n";
String result = "";
//17개의 data태그를 순차로 접근
for (int idx = 0; idx < datas.getLength(); idx++) {
//필요한 정보들을 담을 변수 생성
String day = "";
String hour = "";
String sky = "";
String temp = "";
Node node = datas.item(idx);//data 태그 추출
int childLength = node.getChildNodes().getLength();
//자식태그 목록 수정
NodeList childNodes = node.getChildNodes();
for (int childIdx = 0; childIdx < childLength; childIdx++) {
Node childNode = childNodes.item(childIdx);
int count = 0;
if(childNode.getNodeType() == Node.ELEMENT_NODE){
count ++;
//태그인 경우만 처리
//금일,내일,모레 구분(시간정보 포함)
if(childNode.getNodeName().equals("day")){
int su = Integer.parseInt(childNode.getFirstChild().getNodeValue());
switch(su){
case 0 : day = "금일"; break;
case 1 : day = "내일"; break;
case 2 : day = "모레"; break;
}
}else if(childNode.getNodeName().equals("hour")){
hour = childNode.getFirstChild().getNodeValue();
//하늘상태코드 분석
}else if(childNode.getNodeName().equals("wfKor")){
sky = childNode.getFirstChild().getNodeValue();
}else if(childNode.getNodeName().equals("temp")){
temp = childNode.getFirstChild().getNodeValue();
}
}
}//end 안쪽 for문
result += day+" "+hour+"시 ("+sky+","+temp+"도)\n";
}//end 바깥쪽 for문
tv.setText(result);
} catch (Exception e) {
tv.setText("오류"+e.getMessage());
e.printStackTrace();
}
}
이렇게 되구요~
윗부분 보시면.
alert.setMessage();
이부분에서 막히네요..괄호안에 무엇을 넣어야 하는지...
이것저것 집어넣어봤는데 잘 안되네요 ㅎㅎ
시원시원한 답변 기다리겠습니다.
감사합니다
setMessage메소드의 파라미터값이 어떤건지는 구글 안드로이드 레퍼런스를 찾아보세요.......
http://developer.android.com/reference/android/app/AlertDialog.Builder.html