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

안드로이드 스튜디오로 DB내용을 읽어오는게안됩니다.

0 추천
public class MainActivity extends AppCompatActivity {

    String latitude;
    String longitude;
    Double a;
    Double b;
    String id;
    String check_id_url = "http://limgaram1201.cafe24.com/kid_protector/get_nowlocation.jsp";
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        id_check();

        textView.setText(latitude);

    }
    public void id_check() {
        // call data from web URL
        try {
            ConnectivityManager conManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = conManager.getActiveNetworkInfo();

            if (netInfo != null && netInfo.isConnected()) {
                new CheckTask().execute(check_id_url);
            } else {
                Toast toast = Toast.makeText(getApplicationContext(), "Network isn't connected", Toast.LENGTH_LONG);
                toast.show();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private class CheckTask extends AsyncTask<String, String, String> {
        @Override
        protected String doInBackground(String... arg0) {
            try {
                return (String) checkData((String) arg0[0]);
            } catch (Exception e) {
                return "Json upload failed";
            }
        }

        protected void onPostExecute(String result) {



            StringBuffer sb = new StringBuffer();
            try {
                JSONArray jArray = new JSONArray(result);

                String[] jsonName = {"latitude","longitude"};
                String[][] parsedData = new String[jArray.length()][jsonName.length];

                JSONObject json = null;
                for (int i = 0; i < jArray.length(); i++) {
                    json = jArray.getJSONObject(i);
                    if (json != null) {
                        for (int j = 0; j < jsonName.length; j++) {
                            parsedData[i][j] = json.getString(jsonName[j]);
                        }
                    }
                }
                for (int i = 0; i < parsedData.length; i++) {
                    //readView.setText(result); //json타입으로 출력
                    sb.append(parsedData[i][0]);
                    sb.append(parsedData[i][1]);

                    latitude = parsedData[i][0];
                    longitude = parsedData[i][1];
                    textView.setText(latitude);

                }



            } catch (JSONException e) {
                e.printStackTrace();
            }

        }

        private String checkData(String strUrl) {
            StringBuffer sb = new StringBuffer();
            StringBuilder builder = new StringBuilder();

            try {

                Intent getIntent = getIntent();
                id = getIntent.getStringExtra("id");
                URL url = new URL(check_id_url+"?id="+id);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();

                if(con != null) {
                    con.setConnectTimeout(10000);
                    con.setUseCaches(false);
                    if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
                        BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
                        while(true) {
                            String line = reader.readLine();
                            if(line==null)
                                break;

                            builder.append(line+"\n");
                        }
                        reader.close();
                    }
                    con.disconnect();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return builder.toString();
        }
    }
}
 
DB에저장된 latitude longitude값을 읽어와 텍스트뷰로보여주려하는대
실행시키면 에러가나고 앱이꺼집니다. 제가 보기엔 코드엔문제없고 jsp쪽문제같은대 jsp도 원하시면 첨부해드릴께요 부탁드립니다 ㅜㅜ
jinchi1 (160 포인트) 님이 2016년 4월 5일 질문

3개의 답변

0 추천
디버깅 한번 찍어보시면 어디서 에러나는지 아실수있으실텐데..
초보개발짜욥 (2,800 포인트) 님이 2016년 4월 5일 답변
0 추천
id = getIntent.getStringExtra("id"); 에 값이 제대로 전달되는지 확인하세요

그리고 서버에서는 id 값이 없이 전달해 오면 그에 대한 오류 메시지를 내려주도록 설정하세요
aucd29 (218,390 포인트) 님이 2016년 4월 5일 답변
0 추천
오류 로그를 올려 주셔야 자세하게 답변을 드릴 수 있겠네요.

1. 네트워크 퍼미션을 주신게 맞겠죠?

2. 다음이나 네이버 서버 페이지를 호출해보세요. 다음이나 네이버 페이지를 잘 읽어온다면, jsp 페이지 문제가 맞겠지요.
익명사용자 님이 2016년 4월 5일 답변
...