我正在制作适用于Android的应用,以便您查看日期是否可用。如果日期不在arraylist中,它将被添加,如果日期在arraylist中,则用户将收到消息"请再试一次"。
If语句不起作用,永远不会给出"请再试一次"无论输入的日期是否已经在arraylist中,都会显示该消息。我已经确认数据正在写入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()); }
}
});
}
答案 0 :(得分:2)
如果EditText对象在ArrayList中,看起来if语句条件正在测试。您可能希望测试EditText对象的String值,因为您的ArrayList存储了字符串。
答案 1 :(得分:0)
you are checking if condition with providing wrong condition.
if (DateArray.contains(mEditText2));
这里mEditText2应该是任何String.you正在传递edittext引用。
答案 2 :(得分:0)
从EditText中,您可以将String值放入ArrayList
final ArrayList<String> DateArray = new ArrayList<String>();
DateArray.add("0101");
DateArray.add(mEditText2.getText().toString())
但是当你查找编辑文本信息时,你正在查找edittext对象而不是字符串值。
试试这种方式..
if(DateArray.contains(mEditText2.getText().toString())