package cn.edu.njupt.allgo.widget;
import android.app.DatePickerDialog.OnDateSetListener;
import android.content.Context;
import android.graphics.Color;
import android.text.format.Time;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.DatePicker;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
public class MyDateSpinnerB extends Spinner {
public MyDateSpinnerB(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyDateSpinnerB(Context context, AttributeSet attrs) {
super(context, attrs);
if (isInEditMode()) {
return;
}
final Time time = new Time();
time.setToNow();
//为MyDateSpinner设置adapter,主要用于显示spinner的text值
MyDateSpinnerB.this.setAdapter(new BaseAdapter() {
private TextView text ;
@Override
public int getCount() {
// TODO Auto-generated method stub
return 1;
}
@Override
public Object getItem(int arg0) {
// TODO getItem
return text.getText().toString();
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
text = new TextView(MyDateSpinnerB.this.getContext());
text.setText(
time.year
+ "年"
+ (time.month + 1)
+ "月"
+ time.monthDay
+ "日 "
+ MyDatePickerDialog.CaculateWeekDay(time.year,
time.month+1, time.monthDay)
);
text.setTextColor(Color.GRAY);
return text;
}
});
}
@Override
public boolean performClick() {
Time time = new Time();
time.setToNow();
MyDatePickerDialog tpd = new MyDatePickerDialog(getContext(),
new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, final int year,
final int month, final int day) {
// TODO Auto-generated method stub
//为MyDateSpinner动态设置adapter,主要用于修改spinner的text值
MyDateSpinnerB.this.setAdapter(new BaseAdapter() {
private TextView text ;
@Override
public int getCount() {
// TODO Auto-generated method stub
return 1;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return text.getText().toString();
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1,
ViewGroup arg2) {
// TODO Auto-generated method stub
text = new TextView(MyDateSpinnerB.this
.getContext());
text.setText(year
+ "年"
+ (month + 1)
+ "月"
+ day
+ "日 "
+ MyDatePickerDialog.CaculateWeekDay(
year, month + 1, day));
text.setTextColor(Color.BLACK);
return text;
}
});
}
}, time.year, time.month, time.monthDay);
tpd.show();
return true;
}
}