アプリケーションをコンパイルしているときに、Textviewsが更新されていないため、アンドロイドモニタにエラーが表示されません。 JSONをJavaオブジェクトと配列にマップする方法を教えてもらえますか?OKhttpライブラリでデータを解析することができます
メイン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;
}}
感謝。