마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

subString 질문입니다.

0 추천
Thread t = new Thread(new Runnable() {
 
@Override
public void run() {
 
InputStream is = requestGet(urlPath);
final String result = streamToString(is);
// final String resultXml = streamToString(is);
// final int a = Integer.parseInt(result);
 
result.trim();
handler.post(new Runnable() {
String mid = result.substring(
result.indexOf("<mid>")+5,
result.lastIndexOf("</mid>"));
String name = result.substring(
result.indexOf("<name>")+6,
result.lastIndexOf("</name>"));
 
 
@Override
public void run() {
 
 
if (result != null) {
text.setText(mid + name);
} else {
 
text.setText("실패");
 
}
 
 
 
removeDialog(1);
}
});
 
}
});
t.start();
}
});
 
다음과 같이 result값이 널값이 아니면 텍스트값을 불러와서
substring를 이용하여 불필요한 텍스트는 잘라내도록 하였습니다.
그리고  널값이면 실패라는 텍스트를 나오도록 하고있는데요
널값이 아니면 정상적으로 텍스트를 불러오는데 
널값이면 앱이 중지가 되버리는데요 어떻게 수정해야되나요?
qwlwwmq (560 포인트) 님이 2014년 2월 7일 질문

1개의 답변

0 추천

result.trim(); 에서도 Null 체크를 하셔야 겠네요.

코딩인헬 (12,150 포인트) 님이 2014년 2월 7일 답변
현재 소스에서 result.trim(); 은 있어도 똑같이 실행되고 주석처리해도 똑같이 실행되는데요 null을 체크하는건 어떤 방법을 알려주신건가요?
handler.post(new Runnable() {

            @Override
            public void run() {
                if (result != null) {
                    result.trim();
                    String mid = result.substring(
                    result.indexOf("<mid>")+5,
                    result.lastIndexOf("</mid>"));
                    String name = result.substring(
                    result.indexOf("<name>")+6,
                    result.lastIndexOf("</name>"));
                    text.setText(mid + name);
                } else {
                    text.setText("실패");
                }

                removeDialog(1);
            }
        });

이렇게 하셔야 겠네요.
...