В android studio при запуске эмулятора вылетает такая ошибка -
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.converter, PID: 9481
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.converter/com.example.converter.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'double[] com.example.converter.GetCurrencies.getCurrencies(java.lang.String)' on a null object reference
Подскажите что делать.
MainActivity.java
public class MainActivity extends AppCompatActivity {
public TextView eur;
public TextView usd;
public TextView jpy;
Calendar dateAndTime = Calendar.getInstance();
GetCurrencies getCurrencies;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
eur = findViewById(R.id.EUR);
usd = findViewById(R.id.USD);
jpy = findViewById(R.id.JPY);
fillTop();
}
public String Finalout(String valute, double course) {
return String.format("%s : %s", valute, course);
}
public String TodayLink() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
return String.format("http://www.cbr.ru/scripts/XML_daily.asp?date_req=%s", simpleDateFormat.format(dateAndTime.getTime()));
}
public void fillTop(){
eur.setText(Finalout("EUR", getCurrencies.getCurrencies(TodayLink())[0]));
usd.setText(Finalout("USD", getCurrencies.getCurrencies(TodayLink())[1]));
jpy.setText(Finalout("JPY", getCurrencies.getCurrencies(TodayLink())[2]));
}
}
GetCurrencies.java
public class GetCurrencies {
double eur = 0;
double usd = 0;
double jpy = 0;
public double[] getCurrencies(String urlString) {
//Create empty values for our currencies
try {
URL link = new URL(urlString);
// Сreate dbf for DocumentBuilder
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); //для подгрузки документа - возвращение объекта класса
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new InputSource(link.openStream())); //парсинг структуры создание иерархии;
NodeList nodeList = document.getElementsByTagName("Valute"); //взяли все с тегов с именем Valute
String value;
ArrayList<String> currencies_list = new ArrayList<String>();
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
value = element.getElementsByTagName("Value").item(0).getTextContent();
currencies_list.add(value);
}
String USD = currencies_list.get(10).replace(",",".");
usd = Double.parseDouble(USD);
String EUR = currencies_list.get(11).replace(",",".");
eur = Double.parseDouble(EUR);
String JPY = currencies_list.get(33).replace(",",".");
jpy = Double.parseDouble(JPY);
} catch (IOException | ParserConfigurationException | SAXException | NullPointerException e) {
e.printStackTrace();
}
return new double[] {eur, usd, jpy};
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
код ниже работает все отлично-непонятно другое int miles мы не задавали значений (расстояния) а задали их int dist = 252; По идее же тут вместо miles должно...
Нужна помощь/советМне необходимо в конструкторе сайтов https://tilda
Лексическое окружение понятно, а как понять замыкания в JSКакую функцию она выполняет