Es hat ein starkes persönliches Memo-Element. Ich lerne noch, also würde ich es begrüßen, wenn Sie auf Fehler hinweisen könnten.
Erstellen Sie ein neues Projekt in Android Studio Fügen Sie der Datei build.gradle auf der App-Seite die folgende Beschreibung hinzu und synchronisieren Sie sie jetzt
dependencies {
snip
compile 'org.springframework.android:spring-android-rest-template:2.0.0.M3'
}
Weil beim Versuch, restTemplate.getForObject usw. im Hauptthread auszuführen, ein Fehler auftritt Es scheint notwendig zu sein, die asynchrone Verarbeitung mit AsyncTask auszuführen.
Beispielcode Es ist ein Code, der Postleitzahlensuch-API ausführt und in textViewTest anzeigt.
Verarbeitung auf der Seite, auf der die Taste gedrückt wird ↓ Der Verknüpfungsteil wie findViewById wird weggelassen.
@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];
//Führen Sie die API mit Spring aus
// 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);
}
//Die Nachbearbeitung nach Abschluss der asynchronen Verarbeitung ist abgeschlossen
@Override
protected void onPostExecute(String result) {
super.onPostExecute((String) result);
progressBar.setVisibility(View.INVISIBLE);
textViewTest.setText(result);
}
}
Recommended Posts