当所有3个文本字段仍包含“输入日期”,“开始时间”和“结束时间”时,为什么代码会执行?
CharSequence x = startDateDisplay.getText();
CharSequence y = startTimeDisplay.getText();
CharSequence z = endTimeDisplay.getText();
Log.d(TAG, "validate on save: "+ x + " " + y + " " + z );
if(startDateDisplay.getText() != "Enter Date" &&
startTimeDisplay.getText() != "Start Time" &&
endTimeDisplay.getText() != "End Time" )
{
//excecute code
}
else
{
Toast.makeText(this, "Please fill in all fields", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
对于字符串比较,请使用String.equals()
方法:
if(!StartDateDisplay.getText().toString().equals("Enter Date") &&
!StartTimeDisplay.getText().toString().equals("Start Time") &&
!endTimeDisplay.getText().toString().equals("End Time"))
答案 1 :(得分:0)
尝试这样做:
if(!startDateDisplay.getText().toString().equals("Enter Date") &&
!startTimeDisplay.getText().toString().equals("Start Time") &&
!endTimeDisplay.getText().toString().equals("End Time") ) {
}
它应该可以工作,因为你现在得到的是一个对象,你真正想要的是来自该对象的CharSequence值,它是'Enter Date'
,'Start Time'
和{{ 1}}。