number_except는 (textView_number_except는 textView)
int number_except = Integer.parseInt(textView_number_except.getText().toString());
numberAdapter는 textView_number_except라는 textView에 숫자를 입력하고 화면에 있는 '저장'이라는 버튼을 눌렀을 때
recyclerView에 textView에 입력한 숫자들이 각각의 아이템뷰로 띄워질 때 사용되는 어뎁터입니다.
if (numberAdapter.getItemCount() != 0) {
Log.d(TAG, "어뎁터에 아이템이 1개 이상 있습니다.");
Log.d(TAG, "아이템 0번째 값은 : " + numberAdapter.getItem(0));
Log.d(TAG, "number_except 값은 : " + number_except);
if (numberAdapter.getItem(0).equals(number_except+"")) {
Log.d(TAG, "새로 추가하는 제외 숫자가 현재 중복입니다.");
AlertDialog.Builder builder = new AlertDialog.Builder(SettingActivity.this);
builder.setTitle("주의");
builder.setMessage("숫자를 이미 추가하였습니다.");
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
Log.d(TAG, "새로 추가하는 제외 숫자가 현재 중복 메세지 전달완료");
}
});
AlertDialog dialog = builder.create();
dialog.show();
}else{
numberAdapter.addItem(new Number(String.valueOf(number_except)));
recyclerView.setAdapter(numberAdapter);
Log.d(TAG, "중복되지 않는 숫자 : " + number_except + " 추가 완료");
}
}else if(numberAdapter.getItemCount() == 0){
numberAdapter.addItem(new Number(String.valueOf(number_except)));
recyclerView.setAdapter(numberAdapter);
Log.d(TAG, "첫번째 값 : " + number_except + "이 recyclerView에 추가됨");
}
이 코드를 통해 textView_number_except에 입력하여 추가하려는 숫자가 첫번째로 입력했던 숫자와 일치할 때
첫번째 숫자와 동일함을 경고하기 위해 equals를 이용하여 코드를 작성하려는데
처음으로 textView_number_except에 10을 추가하면 else if(numberAdapter.getItemCount() == 0){---}이 실행되어 10이 추가되고,
또 다시 10을 추가했을 때 if(numberAdapter.getItemCount() != 0){---}이 실행되어 if(numberAdapter.getItem(0).equals(number_except+"")){---}이 실행되어야하는데
else{---}로 넘어가 10이 또 추가됩니다.
Log.d(TAG, "아이템 0번째 값은 : " + numberAdapter.getItem(0));
Log.d(TAG, "number_except 값은 : " + number_except);
에서도 아이템 0번째 값은 : 10, number_except 값은 : 10으로 뜨는데 if(numberAdapter.getItem(0).equals(number_except+"")){---}이 실행되지 않습니다.
왜그러는지 알 수 있을까요?