When I'm compiling the app it isn't updating the Textviews, even it's not showing any error on the android monitor. Can someone explain me how to map JSON to java object and array?
Main Activity.java
public class MainActivity extends AppCompatActivity {
public static final String TAG = MainActivity.class.getSimpleName();
private MovieDetails mmoviedetails;
private TextView Title;
private TextView id;
private TextView releasedate;
private TextView originaltitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Title=(TextView)findViewById(R.id.titleid);
id=(TextView)findViewById(R.id.id);
releasedate=(TextView)findViewById(R.id.releasedateid);
originaltitle=(TextView)findViewById(R.id.originaltitleid);
String forecastUrl = "https://api.themoviedb.org/3/movie/550?api_key=6d349f745d2d8b31d1bfd1cccfbd7e0";
if (isNetworkAvailable()) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(forecastUrl)
.build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
String jsonData = response.body().string();
Log.v(TAG, jsonData);
if (response.isSuccessful()) {
mmoviedetails = getCurrentDetails(jsonData);
runOnUiThread(new Runnable() {
@Override
public void run() {
updateDisplay();
}
});
} else {
alertUserAboutError();
}
}
catch (IOException e) {
Log.e(TAG, "Exception caught: ", e);
}
catch (JSONException e) {
Log.e(TAG, "Exception caught: ", e);
}
}
});
}
else {
Toast.makeText(this, getString(R.string.network_unavailable_message),
Toast.LENGTH_LONG).show();
}
Log.d(TAG, "Main UI code is running!");
}
private void updateDisplay() {
originaltitle.setText(mmoviedetails.getOriginal_title()+"");
id.setText(mmoviedetails.getId()+"");
Title.setText(mmoviedetails.getTitle()+"");
releasedate.setText(mmoviedetails.getRelease_date()+"");
}
private MovieDetails getCurrentDetails(String jsonData) throws JSONException {
JSONObject forecast = new JSONObject(jsonData);
JSONObject currently = forecast.getJSONObject("JSON");
MovieDetails moviedetails = new MovieDetails();
moviedetails.setId(currently.getInt("Id"));
moviedetails.setOriginal_title(currently.getString("Original_title"));
moviedetails.setTitle(currently.getString("Title"));
moviedetails.setRelease_date(currently.getString("Release_date"));
return moviedetails;
}
private boolean isNetworkAvailable() {
ConnectivityManager manager = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
boolean isAvailable = false;
if (networkInfo != null && networkInfo.isConnected()) {
isAvailable = true;
}
return isAvailable;
}
private void alertUserAboutError() {
}
MovieDetails.java
public class MovieDetails {
private String Title;
private String Release_date;
private int Id;
private String original_title;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
public String getRelease_date() {
return Release_date;
}
public void setRelease_date(String release_date) {
Release_date = release_date;
}
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getOriginal_title() {
return original_title;
}
public void setOriginal_title(String original_title) {
this.original_title = original_title;
}}
Thanks in advance.