如何创建几个月和几年的日期选择器?
例如,我想要一个只有
的选择器 2012,2013
年份
和4,5,6,7
几个月。
谢谢
答案 0 :(得分:8)
你可以让自己像洙一样...我知道这个也有几天但是你明白了......
它由每个选择器的两个视图组成,代表按钮,中间有一个ImageView,以及一个处理数字的textSwitcher。
public class EditHomeworkActivity extends Activity implements ViewSwitcher.ViewFactory{
private TextSwitcher mSwitcher1;
private TextSwitcher mSwitcher2;
private TextSwitcher mSwitcher3;
public static int hwID;
public static int change = 0;
public static int year = 1819710;
public static int day = 1819710;
public static int month = 1819710;
int prevMnth;
Calendar cal;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.edit_homework_dialog);
mSwitcher1 = (TextSwitcher) findViewById(R.id.day);
mSwitcher1.setFactory(this);
mSwitcher2 = (TextSwitcher) findViewById(R.id.month);
mSwitcher2.setFactory(this);
mSwitcher3 = (TextSwitcher) findViewById(R.id.year);
mSwitcher3.setFactory(this);
Animation in = AnimationUtils.loadAnimation(this,
android.R.anim.fade_in);
Animation out = AnimationUtils.loadAnimation(this,
android.R.anim.fade_out);
mSwitcher1.setInAnimation(in);
mSwitcher1.setOutAnimation(out);
mSwitcher2.setInAnimation(in);
mSwitcher2.setOutAnimation(out);
mSwitcher3.setInAnimation(in);
mSwitcher3.setOutAnimation(out);
Button confirm= (Button) findViewById(R.id.confirm);
Button cancel = (Button) findViewById(R.id.cancel );
cal = Calendar.getInstance();
if(year != 1819710){cal.set(Calendar.YEAR, year);}
if(month != 1819710){cal.set(Calendar.MONTH, month);}
if(day != 1819710){cal.set(Calendar.DAY_OF_MONTH, day);}
ImageButton dayP= (ImageButton) findViewById(R.id.dayP);
ImageButton dayM= (ImageButton) findViewById(R.id.dayM);
ImageButton monthP= (ImageButton) findViewById(R.id.monthP);
ImageButton monthM= (ImageButton) findViewById(R.id.monthM);
ImageButton yearP= (ImageButton) findViewById(R.id.yearP);
ImageButton yearM= (ImageButton) findViewById(R.id.yearM);
// add a click listener to the button
confirm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditHomeworkActivity.DueYear = cal.get(Calendar.YEAR);
EditHomeworkActivity.DueMonth = cal.get(Calendar.MONTH);
EditHomeworkActivity.DueDay = cal.get(Calendar.DAY_OF_MONTH);
finish();
}
});
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
finish();
}
});
dayP.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cal.roll(Calendar.DAY_OF_YEAR, 1);update();}});
dayM.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cal.roll(Calendar.DAY_OF_YEAR, -1);update();}});
monthP.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cal.roll(Calendar.MONTH, 1);update();}});
monthM.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cal.roll(Calendar.MONTH, -1);update();}});
yearP.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cal.roll(Calendar.YEAR, 1);update();}});
yearM.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {cal.roll(Calendar.YEAR, -1);update();}});
update();
}
public void update(){
mSwitcher1.setText(String.valueOf(cal.get(Calendar.DAY_OF_MONTH)));
mSwitcher2.setText(sort(cal.get(Calendar.MONTH)));
mSwitcher3.setText(String.valueOf(cal.get(Calendar.YEAR)));
}
private CharSequence sort(int i) {
String retrn = null;
if(i == 0){retrn = "Jan";prevMnth = i;}
if(i == 1){retrn = "Feb";}
if(i == 2){retrn = "Mar";}
if(i == 3){retrn = "Apr";}
if(i == 4){retrn = "May";}
if(i == 5){retrn = "Jun";}
if(i == 6){retrn = "Jul";}
if(i == 7){retrn = "Aug";}
if(i == 8){retrn = "Sept";}
if(i == 9){retrn = "Oct";}
if(i == 10){retrn = "Nov";}
if(i == 11){retrn = "Dec";prevMnth = i;}
if(i == 12){if(prevMnth == 0){cal.roll(Calendar.MONTH, -1);}else{cal.roll(Calendar.MONTH, 1);}update();}
return retrn;
}
public View makeView() {
TextView t = new TextView(this);
t.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
t.setTextSize(36);
return t;
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/android_rel_background" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:padding="15dip"
android:text="Homework Due Date:"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#00B7EE" />
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="4dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<TextView
android:id="@+id/dateText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/v"
android:layout_centerHorizontal="true"
android:padding="15dip"
android:text="Date:"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#00B7EE"
android:visibility="gone" />
<View
android:id="@+id/v1"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/dateText"
android:background="#DFDFDF" />
<RelativeLayout
android:id="@+id/rel1"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_below="@+id/v1" android:padding="15dip">
<RelativeLayout
android:id="@+id/rel1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_centerInParent="true">
<View
android:id="@+id/v1"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/dayV"
android:layout_alignTop="@+id/dayV"
android:background="#DFDFDF" />
<LinearLayout
android:id="@+id/dayV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:orientation="vertical" android:layout_toRightOf="@+id/v1">
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<ImageButton
android:id="@+id/dayP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/android_rel_background"
android:padding="30dip"
android:src="@drawable/plus" />
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextSwitcher
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="15dip"
android:paddingTop="15dip" android:layout_centerInParent="true">
</TextSwitcher>
</RelativeLayout>
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<ImageButton
android:id="@+id/dayM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/android_rel_background"
android:padding="30dip"
android:src="@drawable/minus" />
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
</LinearLayout>
<View
android:id="@+id/v2"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/dayV"
android:layout_alignTop="@+id/dayV"
android:layout_toRightOf="@+id/dayV"
android:background="#DFDFDF" />
<LinearLayout
android:id="@+id/monthV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/v2"
android:orientation="vertical" >
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<ImageButton
android:id="@+id/monthP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/android_rel_background"
android:padding="30dip"
android:src="@drawable/plus" />
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<RelativeLayout
android:id="@+id/relativeLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextSwitcher
android:id="@+id/month"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="15dip"
android:paddingTop="15dip" android:layout_centerInParent="true">
</TextSwitcher>
</RelativeLayout>
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<ImageButton
android:id="@+id/monthM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/android_rel_background"
android:padding="30dip"
android:src="@drawable/minus" />
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
</LinearLayout>
<View
android:id="@+id/v3"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/dayV"
android:layout_alignTop="@+id/dayV"
android:layout_toRightOf="@+id/monthV"
android:background="#DFDFDF" />
<LinearLayout
android:id="@+id/yearV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/v3"
android:orientation="vertical" >
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<ImageButton
android:id="@+id/yearP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/android_rel_background"
android:src="@drawable/plus" android:paddingLeft="40dip" android:paddingRight="40dip" android:paddingBottom="30dip" android:paddingTop="30dip"/>
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<RelativeLayout
android:id="@+id/relativeLayout4"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextSwitcher
android:id="@+id/year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="15dip"
android:paddingTop="15dip" android:layout_centerInParent="true">
</TextSwitcher>
</RelativeLayout>
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
<ImageButton
android:id="@+id/yearM"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/android_rel_background"
android:src="@drawable/minus" android:paddingLeft="40dip" android:paddingRight="40dip" android:paddingTop="30dip" android:paddingBottom="30dip"/>
<View
android:id="@+id/v"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:layout_below="@+id/title"
android:background="#DFDFDF" />
</LinearLayout>
<View
android:id="@+id/v4"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/dayV"
android:layout_alignTop="@+id/dayV"
android:layout_toRightOf="@+id/yearV"
android:background="#DFDFDF" />
</RelativeLayout>
</RelativeLayout>
<View
android:id="@+id/v2"
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_alignParentLeft="true"
android:background="#DFDFDF" android:layout_below="@+id/rel1"/>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/v2"
android:background="#FF909090"
android:paddingBottom="5dip" >
<Button
android:id="@+id/confirm"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"
android:layout_weight="1"
android:padding="5dip"
android:text="Confirm" />
<Button
android:id="@+id/cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"
android:layout_weight="1"
android:padding="5dip"
android:text="Cancel" />
</LinearLayout>
</RelativeLayout>