Dies ist die Methode, mit der ich Werte abrufe.Geben Sie mehrere Werte aus AsyncTask/doInBackground zurück und verwenden Sie sie in einer anderen Methode
@Override
protected Void doInBackground(String... params) {
try {
Intent intent = getIntent();
String dvlaNumFin = intent.getStringExtra("dvlaNumber");
final TextView outputView = (TextView) findViewById(R.id.showOutput);
final URL url = new URL("https://dvlasearch.appspot.com/DvlaSearch?licencePlate="+dvlaNumFin+"&apikey=");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("USER-AGENT", "Mozilla/5.0");
connection.setRequestProperty("ACCEPT-LANGUAGE", "en-US,en;0.5");
final StringBuilder output = new StringBuilder(String.valueOf(url));
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = "";
StringBuilder responseOutput = new StringBuilder();
System.out.println("output===============" + br);
while ((line = br.readLine()) != null) {
responseOutput.append(line);
}
br.close();
HandleJSON obj = new HandleJSON("");
obj.readAndParseJSON(responseOutput.toString());
output.append(System.getProperty("line.separator") + "\n" + System.getProperty("line.separator") + "Make : " + obj.getMake() + "\nModel : " + obj.getModel());
output.append("\nSix Month Rate : " + obj.getSixMonthRate() + "\nTwelve Month Rate : " + obj.getTwelveMonthRate() + "\nDate of First Registration : " + obj.getDateofFirstRegistrationegistration());
output.append("\nYear of Manufacture : " + obj.getYearOfManufacture() + "\nCylinder Capacity : " + obj.getCylinderCapacity() + "\nCO2 Emmissions : " + obj.getCo2Emissions());
output.append("\nVIN number : " + obj.getVin() + "\nTransmission type : " + obj.getTransmission());
DVLAresult.this.runOnUiThread(new Runnable() {
@Override
public void run() {
outputView.setText(output);
progress.dismiss();
}
});
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
Ich möchte obj.getMake() verwenden und so weiter, um die Werte von JSON. Aber verstehe nicht, wie es geht, oder gib es zurück. Ich weiß, sollte Rückgabewert sein oder durch Verwendung von final.
Implementieren Sie die onPostExecute-Methode in Ihrer AsyncTask-Klasse :) Wie der Name schon sagt, wird diese aufgerufen, sobald Ihr doInBackground die Ausführung beendet hat. Rufen Sie von onPostExecute die Methode auf, die Sie aufrufen möchten, und übergeben Sie die Antwort, die Sie in onPostExecute als Parameter erhalten haben :) Das ist alles :) –
http://stackoverflow.com/questions/9458258/return-value-from-async-task -in-android –
Mögliches Duplikat von [AsyncTask Android-Beispiel] (http://stackoverflow.com/questions/9671546/asynctask-android-example) –