Необходимо оптимизировать ниже приведенный кусок кода. В данный момент есть несколько условий, при выполнении которых изменяется видимость TextEdit и ViewText. Всё выполняется нормально, но код выглядит ужасно..
private static int countErrors = 0;
private void makeError()
{
countErrors++;
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void startSlider_click(View view) {
countErrors = 0;
EditText NameTextEdit = (EditText) findViewById(R.id.enterNameTextEdit);
EditText UserFromTextEdit = (EditText) findViewById(R.id.enterCityEditText);
EditText YearsTextEdit = (EditText) findViewById(R.id.enterYearsTextEdit);
TextView NameText = (TextView) findViewById(R.id.enterNameText);
TextView YearsText = (TextView) findViewById(R.id.enterOldText);
TextView CityText = (TextView) findViewById(R.id.enterCity);
CheckBox ruleBox = (CheckBox) findViewById(R.id.rulesBox);
// Создать класс Validator
// Возможно в аргументы передавать методы
if (!NameTextEdit.getText().toString().equals("")) {
NameTextEdit.setVisibility(View.GONE);
NameText.setVisibility(View.GONE);
} else makeError();
if(!YearsTextEdit.getText().toString().equals("") && Integer.parseInt(YearsTextEdit.getText().toString())<150) {
YearsTextEdit.setVisibility(View.GONE);
YearsText.setVisibility(View.GONE);
} else makeError();
if(!UserFromTextEdit.getText().toString().equals("")) {
UserFromTextEdit.setVisibility(View.GONE);
CityText.setVisibility(View.GONE);
} else makeError();
if(ruleBox.isChecked())
{
ruleBox.setVisibility(View.GONE);
} else makeError();
if(countErrors==0){
DBHelper dbHelper = DBHelper.newInstance(getApplicationContext());
dbHelper.addAccount(NameTextEdit.getText().toString(), UserFromTextEdit.getText().toString(), Integer.parseInt(YearsTextEdit.getText().toString()));
Intent intent = new Intent(this, CreatePlan.class);
startActivity(intent);
this.finish();
}
}
1) Заведите метод, который проверяет пустой ли EditText, типа:
private boolean isEmpty(TextView textView) {
if(textView==null)
return true;
return (textView.getText().toString().length()==0)?true:false;
}
2) Парные кОнтролы, типа: YearsTextEdit и YearsText посадите в один Layout и устанавливайте флаг видимости сразу на общий Layout
3) Код парсинга строки в целое вынесите в отдельный метод - parseInt обладает отвратительным свойством выкидывать NumberFormatException - из-за чего вы можете получить неприятный Überraschung - надо в этом методе его обрабатывать и в случае ошибки выдавать дефолтное значение
4) Перейдите в конце концов на ButterKnife - код намного упростится
5) Почитайте про Java Naming Convention - такое ощущение что вы из лагеря шарпистов :)
6) И еще разберитесь со стилями скобок - или вы пишете открывающие скобки на одной строке с кодом или на новой строке - сразу видно, что у вас стиль хромает. Настройте в своем IDE стили форматирования кода.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей