Как проверить заполненность поля ввода?

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
piteriv
Сообщения: 58
Зарегистрирован: 03 янв 2015, 00:16
Откуда: Москва
Контактная информация:

Как проверить заполненность поля ввода?

Сообщение piteriv » 12 июн 2015, 16:39

Здравствуйте!
Написал Android приложение которое при вводе двух чисел вычисляет их логический результат. При проверке на реальном планшете приложение работает, но если поля пустые то при выборе логической операции, из контекстного меню, приложение виснет и операционка его закрывает.
Пожалуйста подскажите в чём ошибка? Разъясните пожалуйста?
Я пытался поставить условие проверки полей ввода на предмет если они пустые, но незнаю, что содержит пустое поле ввода.
Вот мой код.

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

package piter.logic;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends Activity {
	
	EditText x1, x2;
	TextView y1, y2;
	
	final int and = 1;
	final int or = 2;
	final int xor = 3;
	final int not = 4;
	final int equ = 5;
	int a, b;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        x1 = (EditText) findViewById(R.id.x1);
        x2 = (EditText) findViewById(R.id.x2);
        y1 = (TextView) findViewById(R.id.y1);
        y2 = (TextView) findViewById(R.id.y2);
        
        registerForContextMenu(y2);
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo){
    	menu.add(0, and, 0, "Логическое побитовое И");
    	menu.add(0, or, 0, "Логическое побитовое ИЛИ");
    	menu.add(0, xor, 0, "Логическое побитовое Исключающее ИЛИ");
    	menu.add(0, not, 0, "Логическое отрицание");
    	menu.add(0, equ, 0, "Логическое сравнение");
    }
    @Override
    public boolean onContextItemSelected(MenuItem item){
    	switch (item.getItemId()){
    	case and:
    		a = Integer.parseInt(x1.getText().toString());
    		b = Integer.parseInt(x2.getText().toString());
    		y1.setText((a&b)+"");
    	break;
    	case or:
    		a = Integer.parseInt(x1.getText().toString());
    		b = Integer.parseInt(x2.getText().toString());
    		y1.setText((a|b)+"");
    	break;
    	case xor:
    		a = Integer.parseInt(x1.getText().toString());
    		b = Integer.parseInt(x2.getText().toString());
    		y1.setText((a^b)+"");
    	break;
    	case not:
    		a = Integer.parseInt(x1.getText().toString());
    		b = Integer.parseInt(x2.getText().toString());
    		if((a!=b)==false)y1.setText("Ложь");
    		else y1.setText("Истина");
    	break;
    	case equ:
    		a = Integer.parseInt(x1.getText().toString());
    		b = Integer.parseInt(x2.getText().toString());
    		if((a==b)==true)y1.setText("Истина");
    		else y1.setText("Ложь");
    	break;
    	}
    	return super.onContextItemSelected(item);
    }
}

Realist
Сообщения: 134
Зарегистрирован: 08 фев 2014, 18:15

Re: Как проверить заполненность поля ввода?

Сообщение Realist » 12 июн 2015, 16:46

piteriv писал(а): но незнаю, что содержит пустое поле ввода.
""

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Как проверить заполненность поля ввода?

Сообщение doter.ua » 12 июн 2015, 17:44

a = Integer.parseInt(x1.getText().toString());
b = Integer.parseInt(x2.getText().toString());
можно вынести вне свич.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
piteriv
Сообщения: 58
Зарегистрирован: 03 янв 2015, 00:16
Откуда: Москва
Контактная информация:

Re: Как проверить заполненность поля ввода?

Сообщение piteriv » 13 июн 2015, 08:00

Вставляю условие проверки и прога виснет на планшете, а без условия работает?
Почему?

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

    @Override
    public boolean onContextItemSelected(MenuItem item){
    	if((x1.getText().toString()=="")||(x2.getText().toString()=="")){
    		x1.setText(0+"");
    		x2.setText(0+"");
    	}
    	a = Integer.parseInt(x1.getText().toString());
    	b = Integer.parseInt(x2.getText().toString());
    	switch (item.getItemId()){
    	case and:
    		y1.setText((a&b)+"");
    	break;
    	case or:
    		y1.setText((a|b)+"");
    	break;
    	case xor:
    		y1.setText((a^b)+"");
    	break;
    	case not:
    		if((a!=b)==false)y1.setText("Ложь");
    		else y1.setText("Истина");
    	break;
    	case equ:
    		if((a==b)==true)y1.setText("Истина");
    		else y1.setText("Ложь");
    	break;
    	}
    	return super.onContextItemSelected(item);
    }

Dark67
Сообщения: 72
Зарегистрирован: 23 июл 2012, 23:11

Re: Как проверить заполненность поля ввода?

Сообщение Dark67 » 13 июн 2015, 10:40

if((x1.getText().toString().equals(""))||(x2.getText().toString().equals("")))

Donart
Сообщения: 114
Зарегистрирован: 06 ноя 2013, 08:59

Re: Как проверить заполненность поля ввода?

Сообщение Donart » 13 июн 2015, 10:49

piteriv писал(а):Почему?
Прочти внимательно 100 первых страниц любой книжки по Java и не один подобный вопрос у тебя больше не возникнет. Займет день-два.

Ответить