Это мой первый раз, когда APIS возвращает результат объекта JSON. Я думаю, что у меня есть асинхронный код задачи, но я просто не знаю, как его выполнить. Это мой код класса. Для моего макета у меня есть одна кнопка с методом onClick()
gg, индикатор выполнения и один текстовый вид.
Это асинхронная задача:Asynctask неизвестный тип execute
public class MainActivity extends Activity
{
ProgressBar progressBar;
TextView responseView;
EditText emailText;
String URL;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
responseView = (TextView) findViewById(R.id.responseView);
emailText = (EditText) findViewById(R.id.emailText);
URL = "https://kgsearch.googleapis.com/v1/entities:search?query=taylor+swift&key=APIKEY&limit=1&indent=True";
}
public void gg(View v)
{
new RetrieveFeedTask.execute();
}
private class RetrieveFeedTask extends AsyncTask<Void, Void, String> {
private Exception exception;
protected void onPreExecute() {
progressBar.setVisibility(View.VISIBLE);
responseView.setText("");
Toast.makeText(MainActivity.this, "pre execute", Toast.LENGTH_LONG).show();
}
protected String doInBackground(Void... urls) {
String email = emailText.getText().toString();
// Do some validation here
try {
URL url = new URL(URL);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
bufferedReader.close();
return stringBuilder.toString();
}
finally{
urlConnection.disconnect();
}
}
catch(Exception e) {
Log.e("ERROR", e.getMessage(), e);
return null;
}
}
protected void onPostExecute(String response) {
if(response == null) {
response = "THERE WAS AN ERROR";
Toast.makeText(MainActivity.this, "post execute", Toast.LENGTH_LONG).show();
}
progressBar.setVisibility(View.GONE);
Log.i("INFO", response);
responseView.setText(response);
}
}
}
Так в public void gg(View v)
я называю .execute
метод, но он дает мне ошибку
Неизвестный тип выполнения
ли я добавить некоторые параметры в метод execute?
Если да, то какой?
Спасибо.
спасибо Я попытаюсь это и пусть знают –
Спасибо, что работали. Кстати, просто спрашиваю. Произошла ошибка в асинхронной задаче. Потому что ответ, который я получаю, равен нулю. Есть идеи. Еще раз спасибо –
Я понял. Мне пришлось добавить разрешение на использование Интернета в моем манифесте. Это заставило его работать !!! Еще раз спасибо за ваш ответ! –