如果声明无法正常工作

时间:2014-09-18 18:28:06

标签: java android if-statement arraylist

我正在制作适用于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()); }

                }

            });




     }

3 个答案:

答案 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())