Написал 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);
}
}