【发布时间】:2014-11-13 05:13:27
【问题描述】:
我正在为 Android 制作一个应用程序,它可以让您查看是否有可用的日期。如果日期不在数组列表中,它将被添加,如果日期在数组列表中,则用户将收到一条消息“请重试”。
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。 -
@JGrice
mEditText2已经将通过隐式的toString()调用进行转换,这就是为什么这个if语句不起作用的原因。需要通过调用mEditText2.getText()来提取这个EditText的所需信息。
标签: java android if-statement arraylist