まず第一に、私は初心者ですが、これまでのところ自分のアプリをほぼ完全に理解しているので、誰かがこれを行う方法を教えてくれることを願っています.
ここに私の完全なアプリコードがあります:
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.view.View;
import java.util.Calendar;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import android.widget.Toast;
public class MainActivity extends Activity {
Button mBtnPlanMe;
CheckBox mCbSaturdaysAllowed;
DatePicker mDpDate;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dynamiclayout);
mBtnPlanMe = (Button) findViewById(R.id.btnPlanMe);
mCbSaturdaysAllowed = (CheckBox) findViewById(R.id.cbSaturdaysAllowed);
mDpDate = (DatePicker) findViewById(R.id.dpDate);
}
public void PlanMe(View view){
if (view == mBtnPlanMe){
Calendar cal = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
int xday = mDpDate.getDayOfMonth();
int xmonth = mDpDate.getMonth();
int xyear = mDpDate.getYear();
cal.set(xyear, xmonth, xday);
if (cal.before(cal1) == true) {
Toast.makeText(this, "Kan geen datum inplannen voor vandaag", Toast.LENGTH_LONG).show();
}
else {
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
cal.add(Calendar.DAY_OF_MONTH, 1);
}
if (!mCbSaturdaysAllowed.isChecked() && cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
cal.add(Calendar.DAY_OF_MONTH, 2);
}
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String date = formatter.format(cal.getTime());
Toast.makeText(this, "Uw afspraak is ingepland op: " + date, Toast.LENGTH_LONG).show();
}
}
}
}
さて、この部分で:
if (cal.before(cal1) == true) {
Toast.makeText(this, "Cannot plan a date earlier than today", Toast.LENGTH_LONG).show();
}
現在の日付より前の日付を計画できないことをユーザーに伝えますが、日付ピッカーを現在の日付にリセットしたいのですが、方法がわかりません。もう「cal.set」は使えません。