안녕하세요^^ 다들 평안한 주말을 즐기고 계시는지.. 저는 코드때문에 미치겠네요
디비에서 받아온 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();
}
}
고수님들 도와주세요 ㅠㅠ