Il a un élément de mémo personnel fort. J'étudie toujours, alors je vous serais reconnaissant si vous pouviez signaler des erreurs.
Créer un nouveau projet dans Android Studio Ajoutez la description suivante au fichier build.gradle du côté de l'application et synchronisez maintenant
dependencies {
snip
compile 'org.springframework.android:spring-android-rest-template:2.0.0.M3'
}
Parce qu'une erreur se produit lors de la tentative d'exécution de restTemplate.getForObject etc. dans le thread principal Il semble qu'il soit nécessaire d'exécuter en utilisant un traitement asynchrone en utilisant AsyncTask.
Exemple de code C'est un code qui exécute API de recherche de code postal et l'affiche dans textViewTest.
Traitement du côté où le bouton est enfoncé ↓ La partie de liaison telle que findViewById est omise.
@Override
public void onClick(View view) {
int intId;
intId = view.getId();
switch (intId){
case R.id.buttonTest:
String zipString;
zipString = editTextZipCode.getText().toString();
Object[] getParams = new Object[1];
getParams[0] = zipString;
apiTask = new ApiTask();
apiTask.execute(getParams);
break;
}
}
class ApiTask extends AsyncTask<Object, String, String> {
@Override
protected String doInBackground(Object[] data) {
String zipCode = (String) data[0];
//Exécuter l'API à l'aide de Spring
// The connection URL
String url = "http://zipcloud.ibsnet.co.jp/api/search?zipcode={zipcode}";
// Create a new RestTemplate instance
RestTemplate restTemplate = new RestTemplate();
// Add the String message converter
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
// Make the HTTP GET request, marshaling the response to a String
String result = restTemplate.getForObject(url,String.class,zipCode);
return result;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressBar.setVisibility(View.VISIBLE);
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
//Post-traitement une fois le traitement asynchrone terminé
@Override
protected void onPostExecute(String result) {
super.onPostExecute((String) result);
progressBar.setVisibility(View.INVISIBLE);
textViewTest.setText(result);
}
}
Recommended Posts