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

SharedPreferences에 변수 저장법 [closed]

0 추천

안녕하세요^^ 다들 평안한 주말을 즐기고 계시는지.. 저는 코드때문에 미치겠네요

디비에서 받아온 url이 있는데 버튼클릭하면 디비에서 받아온 url로 이동하려는 코드를 짜고 있습니다. 

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

    Button btn;
    // PHP를 읽어올때 사용할 변수
    public GettingPHP gPHP;
    SharedPreferences pref;
    SharedPreferences.Editor edit;

    @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 = "";


                pref=getSharedPreferences("urlz",0);
                edit=pref.edit();
                edit.putString("zurl","url");      <- 여기엔 값이 저장이 안되요; 만약 여기에 디비에서 꺼낸 네이버주소(url)을 넣는게 아니라 그냥 네이버 주소적으면(m.naver.com) 잘 작동합니다 
                edit.commit();


                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) {
        SharedPreferences pref= getSharedPreferences("urlz",0);
        String url = pref.getString("zurl","http://m.naver.com");   <- 이렇게 해놔도 앱이 자꾸 꺼지는걸  보면 zurl에 어떤 값이 저장되긴 저장되는듯 한데 ..원래 계획대로라면 디비에 있는 네이버 주소가 저장되야 되는데.. 뭔지모르겠네요..
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        finish();
    }
}

 

고수님들 도와주세요 ㅠㅠ

질문을 종료한 이유: 해결했습니다 껄껄url 을 temp.get("url")로 해야되더군요
껄껄앱 (1,910 포인트) 님이 2016년 2월 20일 질문
껄껄앱님이 2016년 2월 20일 closed
...