layout_width="700dip"
android:
layout_height="750dip"
android:
id="@+id/calendarView"
/>
NumberPicker控件
这控件可用于设置时间的控件,允许用户选择一个数字,从一个预定范围。
该部件提供了一个输入字段和向上和向下选择一个数字按钮。
可按这两个按钮选择一个值填入显示框中,显示框还允许用户触摸滚动,这时会显示上个与下个的值,可以选择当前值来显示。
此类中提供了NumberPicker.setLeft()方法设置最小值,NumberPicker.setMaxValue()设置最大值,可用NumberPicker.setOnValueChangedListener()方法监听更改值事件,只需newOnValueChangeListener对象,并重写里面onValueChange()方法即可,示例代码如下:
效果图:
Src/
package;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.widget.NumberPicker;
importandroid.widget.NumberPicker.OnValueChangeListener;
importandroid.widget.Toast;
publicclassNumberPickerActivityextendsActivity{
NumberPickermNumberPicker1=null;
NumberPickermNumberPicker2=null;
NumberPickermNumberPicker3=null;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.numberpicker_layout);
mNumberPicker1=(NumberPicker)findViewById(R.id.numberPicker1);
mNumberPicker1.setLeft(0);
mNumberPicker1.setMaxValue(24);
mNumberPicker1.setOnValueChangedListener(newOnValueChangeListener(){
@Override
publicvoidonValueChange(NumberPickerpicker,intoldVal,intnewVal){
Toast.makeText(NumberPickerActivity.this,picker.getValue()+getString(R.string.hours),Toast.LENGTH_SHORT).show();
}
});
mNumberPicker2=(NumberPicker)findViewById(R.id.numberPicker2);
mNumberPicker2.setLeft(0);
mNumberPicker2.setMaxValue(60);
mNumberPicker2.setOnValueChangedListener(newOnValueChangeListener(){
@Override
publicvoidonValueChange(NumberPickerpicker,intoldVal,intnewVal){
Toast.makeText(NumberPickerActivity.this,picker.getValue()+getString(R.string.minutes),Toast.LENGTH_SHORT).show();
}
});
mNumberPicker3=(NumberPicker)findViewById(R.id.numberPicker3);
mNumberPicker3.setLeft(0);
mNumberPicker3.setMaxValue(60);
mNumberPicker3.setOnValueChangedListener(newOnValueChangeListener(){
@Override
publicvoidonValueChange(NumberPickerpicker,intoldVal,intnewVal){
Toast.makeText(NumberPickerActivity.this,picker.getValue()+getString(R.string.second),Toast.LENGTH_SHORT).show();
}
});
}
}
res/layout/numberpicker_layout.xml
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
layout_width="match_parent"
android:
layout_height="match_parent"
android:
orientation="vertical">
text="@string/hourset"
android:
layout_width="80dip"
android:
layout_height="wrap_content"
android:
gravity="center_horizontal"/>
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
orientation="horizontal">
id="@+id/numberPicker1"
android:
layout_width="80dip"
android:
layout_height="wrap_content"
android:
focusable="true"
android:
focusableInTouchMode="true"/>
text="@string/hours"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
id="@+id/numberPicker2"
android:
layout_width="80dip"
android:
layout_height="wrap_content"
android:
focusable="true"
android:
focusableInTouchMode="true"/>
text="@string/minutes"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
id="@+id/numberPicker3"
android:
layout_width="80dip"
android:
layout_height="wrap_content"
android:
focusable="true"
android:
focusableInTouchMode="true"/>
text="@string/second"
android:
layout_width="wrap_content"
android:
layout_height="wrap_content"/>
StackView控件
StackView(堆View),是AdapterViewAnimator的子类,一系列View的集合,这些View以层叠样式显示,并且View之间可以进行切换(切换方式有两种:
(1)拖动StackView组件中的某一个View,
(2)通过代码控制),这样每一个View都有机会显示给用户,供用户使用,并且在多个View切换过程中可以添加动画效果。
通过StackView.setAdapter()方法设置一组要显示的View,通过StackView.showPrevious()方法移动到前一个View,通过StackView.showNext()移动到下一个View示例代码如下:
效果图:
Src/
package;
importandroid.app.Activity;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.StackView;
publicclassStackViewActivityextendsActivity{
privateint[]mColors={Color.BLUE,Color.CYAN,Color.GRAY,Color.GREEN,Color.RED};
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.stackview_layout);
finalStackViewstackView=(StackView)findViewById(R.id.mStackView);
ColorAdaptercolorAdapter=newColorAdapter(this,mColors);
stackView.setAdapter(colorAdapter);
finalButtonpreviousButon=(Button)findViewById(R.id.previousButton);
previousButon.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewview){
stackView.showPrevious();
}
});
finalButtonnextButton=(Button)findViewById(R.id.nextButton);
nextButton.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewview){
stackView.showNext();
}
});
}
}
Src/
package;
importandroid.content.Context;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.BaseAdapte