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

mysql에서 받은 데이터 저장법 [closed]

0 추천

안녕하세요^^ mysql에서 데이터(url)를 받아와서 버튼 온클릭 메서드에 url을 넣어서 클릭시 그 페이지가 뜨도록 하는 코드르 짜고 있습니다. 데이터를 받아와서 텍스트에 넣는것 까지는 되는데 온클릭메서드를 대체 어떻게 넣어야 될지 모르겠습니다.  

 

public class MainActivity extends AppCompatActivity {
    // 데이터를 받아올 PHP 주소
    String urlz = "http://제 내부 아이피/getdata.php";
    // 데이터를 보기위한 TextView
    TextView tv;

    Button btn;
    // PHP를 읽어올때 사용할 변수
    public GettingPHP gPHP;

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

        gPHP = new GettingPHP();


        tv = (TextView) findViewById(R.id.textView);
        btn = (Button) findViewById(R.id.button);
        gPHP.execute(urlz);

    }


    class GettingPHP extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {
            StringBuilder jsonHtml = new StringBuilder();
            try {
                URL phpUrl = new URL(params[0]);
                HttpURLConnection conn = (HttpURLConnection) phpUrl.openConnection();

                if (conn != null) {
                    conn.setConnectTimeout(10000);
                    conn.setUseCaches(false);

                    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
                        while (true) {
                            String line = br.readLine();
                            if (line == null)
                                break;
                            jsonHtml.append(line + "\n");
                        }
                        br.close();
                    }
                    conn.disconnect();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return jsonHtml.toString();
        }

        protected void onPostExecute(String str) {
            try {
                // PHP에서 받아온 JSON 데이터를 JSON오브젝트로 변환
                JSONObject jObject = new JSONObject(str);
                // results라는 key는 JSON배열로 되어있다.
                JSONArray results = jObject.getJSONArray("result");
                String zz = "";


                for (int i = 0; i < results.length(); ++i) {
                    JSONObject temp = results.getJSONObject(i);
                    zz += temp.get("url");

                }

                 
                tv.setText(zz);
            } catch (JSONException e) {
                e.printStackTrace();

            }


        }


    }

    public void gourl(View v) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("url"));
        startActivity(intent);
        finish();
    }
}

 

1. 이래저래 시도해보니까 위에 url엔 제가 원하는 값 (디비에서 받아온거)이 들었는데 밑에 url은 그냥 텅빈 문자그대로의 url 이란것 까진 알겠습니다. 이게 AsyncTask 코드를 벗어나서 그런것 맞나요?

2. 코드 안에 넣을려고 해도 자꾸 에러(빨간줄) 뜨면서 안되던데 어떤방식으로 해결해야 하나요??

 

고수님들 도와주세요.. 

질문을 종료한 이유: 답변이 안올라와서 재업합니다
껄껄앱 (1,910 포인트) 님이 2016년 2월 19일 질문
껄껄앱님이 2016년 2월 20일 closed
...