android wheel控件滚动,android 滚动选择插件 android-wheel

效果图:

a4c26d1e5885305701be709a3d33442f.png

源码:

package kankan.wheel.demo;

import java.util.Calendar;

import kankan.wheel.R;

import kankan.wheel.widget.OnWheelChangedListener;

import kankan.wheel.widget.OnWheelClickedListener;

import kankan.wheel.widget.OnWheelScrollListener;

import kankan.wheel.widget.WheelView;

import kankan.wheel.widget.adapters.NumericWheelAdapter;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TimePicker;

public class TimeActivity extends Activity {

// Time changed flag

private boolean timeChanged = false;

// Time scrolled flag

private boolean timeScrolled = false;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.time_layout);

final

WheelView hours = (WheelView) findViewById(R.id.hour);

hours.setViewAdapter(new

NumericWheelAdapter(this, 0, 23));

final WheelView mins =

(WheelView) findViewById(R.id.mins);

mins.setViewAdapter(new

NumericWheelAdapter(this, 0, 59,

"d")); mins.setCyclic(true);

final TimePicker picker =

(TimePicker) findViewById(R.id.time);

picker.setIs24HourView(true);

// set current time

Calendar c =

Calendar.getInstance();

int curHours =

c.get(Calendar.HOUR_OF_DAY);

int curMinutes =

c.get(Calendar.MINUTE);

hours.setCurrentItem(curHours);

mins.setCurrentItem(curMinutes);

picker.setCurrentHour(curHours);

picker.setCurrentMinute(curMinutes);

// add listeners

addChangingListener(mins,

"min");

addChangingListener(hours,

"hour");

OnWheelChangedListener

wheelListener = new OnWheelChangedListener() {

public void

onChanged(WheelView wheel, int oldValue, int newValue) {

if

(!timeScrolled) {

timeChanged

= true;

picker.setCurrentHour(hours.getCurrentItem());

picker.setCurrentMinute(mins.getCurrentItem());

timeChanged

= false;

}

}

};

hours.addChangingListener(wheelListener);

mins.addChangingListener(wheelListener);

OnWheelClickedListener click =

new OnWheelClickedListener() {

public void onItemClicked(WheelView wheel, int itemIndex) {

wheel.setCurrentItem(itemIndex, true);

}

};

hours.addClickingListener(click);

mins.addClickingListener(click);

OnWheelScrollListener

scrollListener = new OnWheelScrollListener() {

public void

onScrollingStarted(WheelView wheel) {

timeScrolled

= true;

}

public void

onScrollingFinished(WheelView wheel) {

timeScrolled

= false;

timeChanged

= true;

picker.setCurrentHour(hours.getCurrentItem());

picker.setCurrentMinute(mins.getCurrentItem());

timeChanged

= false;

}

};

hours.addScrollingListener(scrollListener);

mins.addScrollingListener(scrollListener);

picker.setOnTimeChangedListener(new

TimePicker.OnTimeChangedListener() {

public void

onTimeChanged(TimePicker view, int hourOfDay, int

minute) {

if

(!timeChanged) {

hours.setCurrentItem(hourOfDay,

true);

mins.setCurrentItem(minute,

true); }

}

});

}

private void addChangingListener(final WheelView

wheel, final String label) {

wheel.addChangingListener(new

OnWheelChangedListener() {

public void

onChanged(WheelView wheel, int oldValue, int newValue) {

//wheel.setLabel(newValue

!= 1 ? label + "s" : label);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值