У меня есть кнопка [DONE], которая должна проверять результаты 2 записей.Одним из них является [EditText - inputType: number], а другим - [TextView], который увеличивается при нажатии определенной кнопки.
То, что я пытаюсь сделать, это проверить, имеет ли EditText целое число или равно нулю, и проверить содержимое TextView.если они оба больше нуля.Я складываю их и отправляю итоги своей основной деятельности.Вот код, который у меня есть.
public void returnbtn(View view) {
// Initialize insert textView
EditText insertcountBtn = findViewById(R.id.insertPushup);
// Initialize counter textView
TextView givencountBtn = findViewById(R.id.showCount);
// get added int stuff from the insert textField
int insertcountInt =
Integer.parseInt(insertcountBtn.getText().toString());
// get string stuff from counter textView
String givencountString = givencountBtn.getText().toString();
// convert counter textView to int.
Integer givencountInt = Integer.parseInt(givencountString);
if (givencountInt <= 0 && insertcountInt <= 0){
Total = 0;
} else if (givencountInt > 0 && insertcountInt <= 0) {
Total = givencountInt;
} else if (givencountInt <= 0 && insertcountInt > 0) {
Total = insertcountInt;
} else if (givencountInt > 0 && insertcountInt > 0){
// Add Counter textView and Insert textView to an Int Total
Total = givencountInt + insertcountInt;
}
// Create an Intent to return to the mainActivity.
Intent beginPushup = new Intent(this, MainActivity.class);
// Pass the current number to the push-up Counter activity.
beginPushup.putExtra(TOTAL_DONE, Total);
// Start mainActivity.
startActivity(beginPushup);
}
У меня проблема с textView или EditText, я не уверен.Все, что я знаю, это то, что, если я заполняю их оба и нажимаю «Готово», они складываются и переводят итоговое значение в mainActivity, как и ожидалось.Если я добавляю значения в EditText и оставляю TextView с 0, он также делает то, что должен.Но если я увеличиваю TextView и оставляю EditText пустым, он не передает мое целое число TextView и вылетает из приложения.
Могу ли я обнаружить текст редактирования неправильно, потому что я думаю, что это причина.Если да, то какой путь правильный?с чем-то, я не получаю свой Integer в mainActivity.Это становится интересным.* Я думаю, что это игра утверждений if, которые я реструктурирую, но пока не повезло.*
----- Обновленный рабочий код для любых будущих запросов -----
public void filledChecker() {
// Initialize insert textView
EditText insertcountBtn =
findViewById(R.id.insertPushup);
// Initialize counter textView
TextView givencountBtn = findViewById(R.id.showCount);
int insertcountInt = 0;
int givencountInt = 0;
// get added int stuff from the insert textField
if (!TextUtils.isEmpty(insertcountBtn.getText()) &&
TextUtils.isDigitsOnly(insertcountBtn.getText())) {
insertcountInt =
Integer.parseInt(insertcountBtn.getText().toString());
}
// get string stuff from counter textView
String givencountString = givencountBtn.getText().toString();
if (!TextUtils.isEmpty(givencountString) &&
TextUtils.isDigitsOnly(givencountString)) {
givencountInt = Integer.parseInt(givencountString);
}
if (insertcountInt <= 0) {
Total = givencountInt;
}
if (insertcountInt > 0) {
Total = givencountInt + insertcountInt;
}
}
public void returnbtn(View view) {
// Create an Intent to return to the mainActivity.
Intent beginPushup = new Intent(this, MainActivity.class);
filledChecker();
Integer current_Id = getIntent().getIntExtra(GIVEN_ID, 0);
// Pass the current number to the push-up Counter activity.
if (current_Id == 1) beginPushup.putExtra(TOTAL_P_DONE,
Total);
if (current_Id == 2) beginPushup.putExtra(TOTAL_S_DONE,
Total);
if (current_Id == 3) beginPushup.putExtra(TOTAL_C_DONE,
Total);
if (current_Id == 4) beginPushup.putExtra(TOTAL_SQ_DONE,
Total);
beginPushup.putExtra(GIVEN_ID, current_Id);
// Start mainActivity.
startActivity(beginPushup);
}
I Как вы можете видеть, я в конечном итоге отделил логику if от Намерения наПереход к основному виду деятельности.Таким образом, они оба просты.И используя «Не повторять себя», я сделал то же самое с остальными моими другими кнопками, как вы можете видеть со всеми if в методе [returnbtn].Я также упростил утверждение if помимо тех, с которыми мне помогли.Я закончил тем, что нуждался в 2 операторах if, чтобы получить общее количество от 2 записей.Еще раз спасибо за помощь всем.Ох, попытка - кроме как не кажется необходимым, поэтому я не одобряю их.по мере усложнения приложения я буду добавлять их при необходимости.