приложение про погоду в котором когда пользователь вводит город ( на английском ) данный город заноситься в ссылку и на openmapweather.com можно посмотреть погоду в этом городе, но у меня не выводит ничего, на фотографии в круге должно было вывести данные с сайта. Гуглил о проблеме но тоже ничего не нашел. Помогите пожалуйста!
Код:
private EditText user_field;
private Button main_btn;
private TextView result_info;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user_field = findViewById(R.id.user_field);
main_btn = findViewById(R.id.main_btn);
result_info = findViewById(R.id.result_info);
main_btn.setOnClickListener(new View.OnClickListener() { // потом обязательно занеси эту функцию в конспект
@Override
public void onClick(View v) {
if (user_field.getText().toString().trim().equals("")) {
Toast.makeText(MainActivity.this, R.string.no_user_input, Toast.LENGTH_LONG).show();
} else {
String city = user_field.getText().toString();
String key = "4ea7c6f5b338f3843fa85565b3b5a10c";
String url = "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + key + "&units=metric&lang=ru"; // сайт https://openweathermap.org/current
new GetURLData().execute(url); // передали значение url в новый класс
}
}
});
}
private class GetURLData extends AsyncTask<String, String, String> implements com.android.weather.GetURLData {
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(MainActivity.this, R.string.loading, Toast.LENGTH_LONG).show();
}
@Override
protected String doInBackground(String... strings) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(strings[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null)
buffer.append(line).append("\n");
return buffer.toString();
} catch (MalformedURLException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (connection != null) {
connection.disconnect();
}
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
@Override
public void OnPostExecute(String result){
super.onPostExecute(result);
}
}
}
https://pastebin.com/ сайт для шейринга кода
Асинк таск, ахуеть
Ну асинк таск наверное лет 8 назад использовали, вы как к этому пришли?
Прошел через огонь, воду и медные трубы) Хорошо, тогда что вместо его можно использовать?
Обсуждают сегодня