我正在尝试构建一个Android应用程序并遇到一种情况,我希望用户通过单击上一个(月)和下一个(月)按钮在日期之间导航。但是我不希望用户在当月之后过一个月。我希望应用程序提示一个对话框,让用户知道他们无法选择当前的一个月后。下面是我的代码片段 - 我在两个部分上收到错误
01. if(formattedDate.before(currentMonth) || formattedDate.equals(currentMonth)){
在上面我收到错误说
The method before(Calendar) is undefined for the type String
02. new AlertDialog.Builder(HomeFragment.this)
并在上面我收到错误说
The constructor AlertDialog.Builder(HomeFragment) is undefined
以下是我点击监听器的完整代码
NextPicker.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(formattedDate.before(currentMonth) || formattedDate.equals(currentMonth)){
c.add(Calendar.MONTH, 1);
formattedDate = df.format(c.getTime());
Log.v("NEXT DATE : ", formattedDate);
DatePicker.setText(formattedDate);
}
else{
new AlertDialog.Builder(HomeFragment.this)
.setTitle("Wrong Date Selection!")
.setMessage("The Month Selected must be before or equal to current month")
.setNeutralButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
}
}).show();
}
}
});
答案 0 :(得分:1)
你的第一个问题是formattedDate是一个String。它必须是java.util.Date。
你的第二个问题来自于AlertDialog.Builder构造函数需要一个Context子类。 Fragment不是Context子类,但Activity是。尝试像
这样的东西new AlertDialog.Builder(HomeFragment.this.getActivity());