Решил написать штуку, выводящую молярную массу химических соединений, но при нажатии кнопки посчитать происходит вылет. Использую простой поиск по файлу, привожу код
package com.example.chemcalc;
import java.io.*;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
EditText etNum1;
Button btnAdd;
TextView tvResult;
String oper = "";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// находим элементы
etNum1 = (EditText) findViewById(R.id.etNum1);
btnAdd = (Button) findViewById(R.id.btnAdd);
tvResult = (TextView) findViewById(R.id.tvResult);
// прописываем обработчик
btnAdd.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String comp = etNum1.getText().toString();
// Проверяем поля на пустоту
if (TextUtils.isEmpty(etNum1.getText().toString())) {
return;
}
// читаем EditText и заполняем переменные числами
String com1 = etNum1.getText().toString();
// определяем нажатую кнопку и выполняем соответствующую операцию
switch (v.getId()) {
case R.id.btnAdd:
String str = null;
try {
URL url = new URL("http://picpost.w.pw/elements.txt");
LineNumberReader lnr = new LineNumberReader(new BufferedReader(
new InputStreamReader(url.openStream())));
Pattern p1 = Pattern.compile(com1 + " = (\\w+).*");
while (((str = lnr.readLine()) != null)) {
Matcher m = p1.matcher(str);
if (m.find()) {
// System.out.println( m.group(1));
// result = m.group(1);
tvResult.setText("Масса" + comp + "=" + m.group(1));
}
}
lnr.close();
} catch (IOException e) {
tvResult.setText("I/O Error!");
}
}
}
}
специально для некоторых товарищей: вылетает банально приложение остановилось.