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

서버에서 데이터를 받아오는데요 현재액티비티 말구 다른 액티비티에 받기...이거에 대한 질문있어요

0 추천

제가 지금 하려는게 서버에 데이터를 보낸 다음 그거에 해당하는 데이터를 받아와서 다른 액티비티의 텍스트뷰에 뿌리려고하거든요 이걸 ㅇㅓ떻게 해야할지 모르겠습니다..도와주세요 ㅠㅠ 제 소스는 비동기 방식으로 데이터 전송입니다...

현재 액티비티 ->서버에 데이터 전송 -> 서버에서 데이터전송 -> 다른 액티비티에서 받기!!

btntm.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TimeTask task5 = new TimeTask();
        task5.execute(infoTv1.getText().toString(), tvd.getText().toString()); //보내는 데이터들
    }
});
class TimeTask extends AsyncTask<String, Void, String> {
    String sendMsg, receiveMsg;
    @Override
    // doInBackground의 매개값이 문자열 배열인데요. 보낼 값이 여러개일 경우를 위해 배열로 합니다.
    protected String doInBackground(String... strings) {
        try {
            String str;
            URL url = new URL("http://localhost:8080/JJUstubuilding_test/result_set_pro.spring");//보낼 jsp 주소를 ""안에 작성합니다.
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestMethod("POST");//데이터를 POST 방식으로 전송합니다.
            OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
            sendMsg = "yeahyack_gujang_idx="+strings[0]+"&yeahyack_day="+strings[1];//보낼 정보인데요. GET방식으로 작성합니다.
            //회원가입처럼 보낼 데이터가 여러 개일 경우 &로 구분하여 작성합니다.
            osw.write(sendMsg);//OutputStreamWriter에 담아 전송합니다.
            osw.flush();
            //jsp와 통신이 정상적으로 되었을 때 할 코드들입니다.
            if(conn.getResponseCode() == conn.HTTP_OK) {
                InputStreamReader tmp = new InputStreamReader(conn.getInputStream(), "UTF-8");
                BufferedReader reader = new BufferedReader(tmp);
                StringBuffer buffer = new StringBuffer();
                //jsp에서 보낸 값을 받겠죠?
                while ((str = reader.readLine()) != null) {
                    buffer.append(str);
                }
                receiveMsg = buffer.toString();
                Log.i("통신 결과", receiveMsg);


            } else {
                Log.i("통신 결과", conn.getResponseCode()+"에러");
                // 통신이 실패했을 때 실패한 이유를 알기 위해 로그를 찍습니다.
            }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        //jsp로부터 받은 리턴 값입니다.
        return receiveMsg;
    }
    @Override
    protected void onPostExecute(String result){
        super.onPostExecute(result);

        if (result.trim().equals("OK")){
            Log.d("결과", "result = " + result);
            Intent i = new Intent(getApplicationContext(), Announce.class);
            startActivity(i); //여기서 다른 액티비티로 넘어가 거기서 데이터를 받는 방법을 생각하고있습니다.
        }else {
            Toast.makeText(getApplicationContext(),"확인",Toast.LENGTH_LONG).show();
        }
    }
}
Autobhan (640 포인트) 님이 2018년 12월 10일 질문

1개의 답변

0 추천
액티비티 이동할때 intent.putExtra("result",result); 하고 Announce 액티비티에서 getStringExtra("result")로 받으심 될것같습니다.
익명사용자 님이 2018년 12월 10일 답변
아하...그런방법이있었군요 감사합니다 정말
...