Помогите новичку

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 09:36

Здравстуйте,
Я только начинаю заниматься изучением android, но я уже стараюсь писать небольшие приложения. Я хочу создать приложение, которые будут спрашивать известные вам значения сторон прямоугольного треугольника, и находить неизвестную сторону(нужно вести известные значения в определённые поля, а неизвестные оставить пустыми)Но при тестирования на эмуляторе, при нажатии кнопки появляется ошибка:"the application has stopped unexpectedly".Можете помочь, и что не так с кодом приложения
Заранее спасибо!

Код: Выделить всё

package ololo.pakage.com.ru;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity implements android.view.View.OnClickListener {
	EditText e1;
	EditText e2;
	EditText e3;
	Button button1;
	TextView result;
	
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
     // находим элементы
        e1 = (EditText) findViewById(R.id.e1);
        e2 = (EditText) findViewById(R.id.e2);
        e3 = (EditText) findViewById(R.id.e3);
        button1 = (Button) findViewById(R.id.button1);
        

        result = (TextView) findViewById(R.id.result);
        
        // прописываем обработчик
        button1.setOnClickListener(this);
    }
         
  
	@Override
	
		// TODO Auto-generated method stub
		public void onClick(View v) {
		    // TODO Auto-generated method stub
		    double n1 = 0;
		    double n2 = 0;
		    double n3 = 0;
		  
		  
		  
		    n1 = Float.parseFloat(e1.getText().toString());
		    n2 = Float.parseFloat(e2.getText().toString());
		    n3 = Float.parseFloat(e3.getText().toString());
		    
		    switch (v.getId()) {
		    case R.id.button1:
		    	if  (e1.getText().toString().equals("")){
		    		n1=Math.sqrt(n3*n3-n2*n2);
		    		result.setText("a="+n1);
		    	
		    		
		    		
		    	}
		    	else if (e2.getText().toString().equals("")){
		    		 n2 =Math.sqrt(n3*n3-n1*n1);
		    		
		    		 result.setText("B="+n2);
		    	}
		    	else if (e3.getText().toString().equals("")){
		    		 n3 =Math.sqrt(n1*n1+n2*n2);
		    		
		    		 result.setText("c="+n3);
		    		
		    	}
		    	else {
		    		result.setText("неверно занчение, или недостаточно данных");
		    		
		    	}
		    default:
		        break;
		        
		    }
		    
		   
}
}

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Помогите новичку

Сообщение KamiSempai » 17 окт 2012, 09:56

"the application has stopped unexpectedly" говорит лишь о том, что приложение было закрыто. Напишите подробно, что пишет в логах.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Re: Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 10:05

KamiSempai писал(а):"the application has stopped unexpectedly" говорит лишь о том, что приложение было закрыто. Напишите подробно, что пишет в логах.
При нажатии на конпку появляется "The application 1 (process ololo.pakage.com.ru) has stopped unexpectedly.Please try again"
1 - название приложение
process ololo.pakage.com.ru- pakage name
Вложения
error.JPG
error.JPG (21.57 КБ) 10910 просмотров
Последний раз редактировалось Ilyatoon 17 окт 2012, 10:07, всего редактировалось 1 раз.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Помогите новичку

Сообщение rezak90 » 17 окт 2012, 10:07

Он имел в виду что пишется в логе ошибок в Eclips'e. Откройте LogCat и посмотрите, а лучше содержимое сюда скопируйте.
R.id.team
Политика на форуме запрещена

Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Re: Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 10:18

Вот. Скопировать не смог, а скриншот сделал.
Вложения
error1.JPG
error1.JPG (119.94 КБ) 10910 просмотров

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Помогите новичку

Сообщение rezak90 » 17 окт 2012, 10:24

о чём говорит NumberFormatException? О том что не может спарсить в float. Такие ошибки нужно отлавливать в коде.
R.id.team
Политика на форуме запрещена

Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Re: Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 14:01

rezak90 писал(а):о чём говорит NumberFormatException? О том что не может спарсить в float. Такие ошибки нужно отлавливать в коде.
Я менял тип на double и integer, но всё равно вылезает эта ошибка

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Помогите новичку

Сообщение rezak90 » 17 окт 2012, 14:16

она и будет вылезать так как если там не double а например "hello world" то как оно спарсит в double? вот и выскакивает ошибка. Просто не верный тип вводите в EditText.
R.id.team
Политика на форуме запрещена

Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Re: Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 14:40

rezak90 писал(а):она и будет вылезать так как если там не double а например "hello world" то как оно спарсит в double? вот и выскакивает ошибка. Просто не верный тип вводите в EditText.
Если поменять Edittext c number на numder(Decimal), то ошибка пропадёт?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Помогите новичку

Сообщение rezak90 » 17 окт 2012, 14:52

если будете вводить только вещественные числа то да. Вы поняли в чём ошибка то? или пальцем в небо?
R.id.team
Политика на форуме запрещена

Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Re: Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 15:02

rezak90 писал(а):если будете вводить только вещественные числа то да. Вы поняли в чём ошибка то? или пальцем в небо?
Ну я понял, почти. Я же говорил что новичок

Ilyatoon
Сообщения: 8
Зарегистрирован: 17 окт 2012, 09:30

Re: Помогите новичку

Сообщение Ilyatoon » 17 окт 2012, 15:51

а можно, чтобы в edittext(number decimal), после запятой не 1 цифра была, а несколько?

Ответить