I want to start an activity and give out a Toast message after I parsed a JSON response.
public class Sign_Up extends AppCompatActivity {
....
register();
public void register()
{
final String url = "someURL";
new Json().checkJsonFile(url,getApplicationContext());
}
//Now in an non-activity
public class Json {
public void checkJsonFile(final String url, final Context context) {
new Thread(new Runnable() {
public void run() {
String result;
String line;
try {
URL obj = new URL(url);
HttpURLConnection conn = (HttpURLConnection) obj.openConnection();
conn.setReadTimeout(5000);
conn.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
conn.addRequestProperty("User-Agent", "Mozilla");
conn.addRequestProperty("Referer", "google.com");
boolean redirect = false;
// normally, 3xx is redirect
int status = conn.getResponseCode();
if (status != HttpURLConnection.HTTP_OK) {
if (status == HttpURLConnection.HTTP_MOVED_TEMP
|| status == HttpURLConnection.HTTP_MOVED_PERM
|| status == HttpURLConnection.HTTP_SEE_OTHER)
redirect = true;
}
if (redirect) {
// get redirect url from "location" header field
String newUrl = conn.getHeaderField("Location");
// get the cookie if need, for login
String cookies = conn.getHeaderField("Set-Cookie");
// open the new connnection again
conn = (HttpURLConnection) new URL(newUrl).openConnection();
conn.setRequestProperty("Cookie", cookies);
conn.addRequestProperty("Accept-Language", "en-US,en;q=0.8");
conn.addRequestProperty("User-Agent", "Mozilla");
conn.addRequestProperty("Referer", "google.com");
}
BufferedReader in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close();
result = sb.toString();
new Sign_Up().parseJSON(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
//Back in Sign_Up class
public void parseJSON(String JSON){
int error = -1;
try {
JSONObject jsonObject = new JSONObject(JSON);
error = Integer.parseInt(jsonObject.getString("error_code"));
} catch (JSONException e) {
//Retry
register();
e.printStackTrace();
}
progressDialog.dismiss();
switch (error) {
case 0: //Successful
finish();
startActivity(new Intent(Sign_Up.this, Loading.class));
break;
case 1:
Toast.makeText(getApplicationContext(), "blabla", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(getApplicationContext(), "other blabla", Toast.LENGTH_SHORT).show();
break;
default:
register();
break;
}
}
However, when I put the Json stuff inside the Sign_Up class at least the startActivity works, but the Toast doesn't. As well, I would like to have the Json stuff in an seperate class.
Thank you very much in advance!