안녕하세요 초보개발자가 삼일밤 삽질을 해도 문제가 해결되지 않아 도움을 부탁드립니다.
인터넷에서 구한 소스코드를 베이스로 하여 테스트중인데,
원본 소스코드에서 해당 클래스파일(DownloadActivity)에서 url을 직접 정의했던 부분만 다른 클래스(GetUrl)에서 받아서 쓰고자하는것이 목적입니다.
public void onClick(View v) {
final String fileURL = "~~~"
...
}
이 부분을
public void onClick(View v) {
GetURL geturl = (GetURL) getApplicationContext();
geturl.testVolly();
final String fileURL = geturl.fileURL;
...
}
이렇게 바꿨는데, fileURL안에 계속 null이 입력됩니다.
분명 geturl.testVolly(); 메소드를 먼저 실행시켜서 geturl 클래스상의 fileURL을 변경했다고 생각했는데
왜 null이 나올까요??
GetURL 클래스는 다음과 같습니다.
public class GetURL extends Application {
public String fileURL;
public void testVolly() {
RequestQueue queue = Volley.newRequestQueue(GetURL.this);
// 이 곳은 url을 적어둔 txt파일 링크입니다.
String url ="https://~~~~~~";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
String res[] = response.split("\n");
// 이 곳은 txt파일로부터 2번째 줄에 적힌 url을 불러 전역변수 fileURL에 저장하는 과정입니다.
fileURL = res[1];
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("AAA", "That didn't work!");
}
});
queue.add(stringRequest);
}
}
감사합니다.