Я делаю приложение для Android, которое позволит вам увидеть, доступна ли дата. Если дата не находится в arraylist, она будет добавлена, если дата находится в arraylist, тогда пользователь получит сообщение «попробуйте еще раз».Если оператор не работает правильно
Операция If не работает и никогда не дает сообщение «попробуйте еще раз», независимо от того, введенная дата уже находится в архаристе. Я подтвердил, что данные записываются в arraylist.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
final ArrayList<String> DateArray = new ArrayList<String>();
DateArray.add("0101"); //test code
addListenerRadioGroup(); //not important
mNextButton = (Button)findViewById(R.id.NextButton);
mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mEditText2 =(EditText)findViewById(R.id.editText2);
if (DateArray.contains(mEditText2)) { //looks for edit text info
Toast.makeText(getApplicationContext(), //This should pop up if user
"please try again", Toast.LENGTH_SHORT).show(); //enters "0101"
} else {
DateArray.add(mEditText2.getText().toString()); }
}
});
}
ArrayList никогда не будет содержать объект EditText. Вам нужно преобразовать mEditText2 в эквивалент строки, а затем использовать contains. –
Grice
@JGrice 'mEditText2' уже будет преобразован с помощью неявного вызова' toString() 'и поэтому этот оператор' if' не работает. Необходимо извлечь желаемую информацию этого EditText, вызвав 'mEditText2.getText()'. – Tom