徐航 滑屏控制

This commit is contained in:
ram 2016-08-18 21:29:31 +08:00
parent 75771e8dbb
commit 76e0c6fb5f
10 changed files with 936 additions and 0 deletions

View File

@ -0,0 +1,69 @@
package com.stone.shop.adapter;
import java.util.List;
import com.stone.shop.R;
import com.stone.shop.model.Classroom;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ClassroomAdapter extends BaseAdapter {
private Context mContext;
private List<Classroom> mNewsList; // 商品列表信息
private LayoutInflater mInflater = null;
public ClassroomAdapter(Context context, List<Classroom> newsList) {
mContext = context;
mNewsList = newsList;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mNewsList.size();
}
@Override
public Object getItem(int position) {
return mNewsList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
// 刷新列表中的数据
public void refresh(List<Classroom> list) {
mNewsList = list;
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.gv_item_classroom, null);
viewHolder = new ViewHolder();
viewHolder.tv_chooseText = (TextView) convertView.findViewById(R.id.tv_chooseText);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.tv_chooseText.setText(mNewsList.get(position).getName());
return convertView;
}
class ViewHolder {
public TextView tv_chooseText; // 博学堂讲座标题
}
}

View File

@ -0,0 +1,22 @@
package com.stone.shop.model;
import cn.bmob.v3.BmobObject;
public class Classroom extends BmobObject {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "ClassRoom [name=" + name + "]";
}
}

View File

@ -0,0 +1,44 @@
package com.stone.shop.model;
import cn.bmob.v3.BmobObject;
public class Reservation extends BmobObject {
private String roomId;
private String roomName;
private String userId;
private String dateTime;
public String getRoomId() {
return roomId;
}
public void setRoomId(String roomId) {
this.roomId = roomId;
}
public String getRoomName() {
return roomName;
}
public void setRoomName(String roomName) {
this.roomName = roomName;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getDateTime() {
return dateTime;
}
public void setDateTime(String dateTime) {
this.dateTime = dateTime;
}
}

View File

@ -0,0 +1,93 @@
package com.stone.shop.view;
import java.util.ArrayList;
import java.util.List;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.listener.FindListener;
import com.stone.shop.R;
import com.stone.shop.adapter.BXTListAdapter;
import com.stone.shop.adapter.ClassroomAdapter;
import com.stone.shop.model.Classroom;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class ClassroomActivity extends Activity implements OnItemClickListener {
private static final String TAG = "BXTActivity";
private GridView lvBXTNews;
private ClassroomAdapter mBxtListAdapter;
private List<Classroom> mBXTNewsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_classroom);
initView();
initData();
}
private void initView() {
lvBXTNews = (GridView) findViewById(R.id.gv_classroom);
mBXTNewsList = new ArrayList<Classroom>();
mBxtListAdapter = new ClassroomAdapter(this, mBXTNewsList);
lvBXTNews.setAdapter(mBxtListAdapter);
lvBXTNews.setOnItemClickListener(this);
TextView tv_title = (TextView) findViewById(R.id.tv_title);
tv_title.setText("教室");
}
private void initData() {
BmobQuery<Classroom> query = new BmobQuery<Classroom>();
query.findObjects(this, new FindListener<Classroom>() {
@Override
public void onSuccess(List<Classroom> newsList) {
// toast("查询商品成功, 共" + newsList.size());
if (newsList.size() == 0)
toast("亲, 暂时还木有教室哦");
else {
mBXTNewsList = newsList;
mBxtListAdapter.refresh(newsList);
mBxtListAdapter.notifyDataSetChanged();
}
}
@Override
public void onError(int arg0, String arg1) {
toast("查询失败");
}
});
}
private void toast(String toast) {
Toast.makeText(this, toast, Toast.LENGTH_SHORT).show();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(ClassroomActivity.this, ReservationActivity.class);
Classroom classroom = mBXTNewsList.get(position);
intent.putExtra("roomId", classroom.getObjectId());
intent.putExtra("roomName", classroom.getName());
startActivity(intent);
}
}

View File

@ -0,0 +1,138 @@
package com.stone.shop.view;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import com.stone.shop.R;
import com.stone.shop.model.Reservation;
import com.stone.shop.model.User;
import com.stone.ui.DateTimePickDialogUtil;
import com.stone.ui.DateTimePickDialogUtil.DateTimeListener;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import cn.bmob.v3.BmobQuery;
import cn.bmob.v3.listener.DeleteListener;
import cn.bmob.v3.listener.FindListener;
import cn.bmob.v3.listener.SaveListener;
public class ReservationActivity extends Activity {
private Button btn_login;
private SimpleDateFormat dateFormat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_reservation);
TextView tv_title = (TextView) findViewById(R.id.tv_title);
tv_title.setText("教室预定");
final String roomId = getIntent().getStringExtra("roomId");
final String roomName = getIntent().getStringExtra("roomName");
TextView tv_room = (TextView) findViewById(R.id.tv_room);
tv_room.setText("教室:" + roomName);
btn_login = (Button) findViewById(R.id.btn_login);
dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
// 查找Person表里面id为6b6c11c537的数据
BmobQuery<Reservation> bmobQuery = new BmobQuery<Reservation>();
bmobQuery.addWhereEqualTo("userId", User.userId);
bmobQuery.addWhereEqualTo("roomId", roomId);
bmobQuery.findObjects(ReservationActivity.this, new FindListener<Reservation>() {
@Override
public void onSuccess(List<Reservation> newsList) {
// toast("查询商品成功, 共" + newsList.size());
if (newsList.size() != 0) {
String dateTime = newsList.get(0).getDateTime();
try {
if (dateFormat.parse(dateTime).before(new Date())) {
Reservation gameScore = new Reservation();
gameScore.setObjectId(newsList.get(0).getObjectId());
gameScore.delete(ReservationActivity.this);
} else {
btn_login.setEnabled(false);
btn_login.setText("已经预定" + (TextUtils.isEmpty(dateTime) ? "" : (" " + dateTime)));
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void onError(int arg0, String arg1) {
toast("查询失败");
}
});
btn_login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DateTimePickDialogUtil dateTimePicKDialog = new DateTimePickDialogUtil(ReservationActivity.this,
dateFormat.format(new Date()));
dateTimePicKDialog.dateTimePicKDialog(new DateTimeListener() {
@Override
public void onDateTimeChane(final String dateTime) {
// TODO Auto-generated method stub
Reservation reservation = new Reservation();
reservation.setRoomId(roomId);
reservation.setRoomName(roomName);
reservation.setUserId(User.userId);
reservation.setDateTime(dateTime);
reservation.save(ReservationActivity.this, new SaveListener() {
@Override
public void onSuccess() {
// TODO Auto-generated method stub
toast("预定成功");
btn_login.setEnabled(false);
btn_login.setText("已经预定 " + dateTime);
}
@Override
public void onFailure(int arg0, String arg1) {
// TODO Auto-generated method stub
toast("预定失败");
}
});
}
});
}
});
}
private void toast(String toast) {
Toast.makeText(this, toast, Toast.LENGTH_SHORT).show();
}
}

View File

@ -0,0 +1,75 @@
package com.stone.shop.view;
import com.stone.shop.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.widget.RelativeLayout;
public class SplashActivity extends Activity {
private RelativeLayout rlSplash;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initView();
initAnimation();
}
private void initView() {
setContentView(R.layout.activity_splash);
rlSplash = (RelativeLayout) findViewById(R.id.rl_splash);
}
private void initAnimation() {
AnimationSet set = new AnimationSet(false);
RotateAnimation rtAnimation = new RotateAnimation(0, 360,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
0.5f);
rtAnimation.setDuration(2000);
rtAnimation.setFillAfter(true);
ScaleAnimation scAnimation = new ScaleAnimation(0, 1, 0, 1,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
0.5f);
scAnimation.setDuration(2000);
scAnimation.setFillAfter(true);
AlphaAnimation alAnimation = new AlphaAnimation(0, 1);
alAnimation.setDuration(2000);
alAnimation.setFillAfter(true);
set.addAnimation(rtAnimation);
set.addAnimation(scAnimation);
set.addAnimation(alAnimation);
set.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
startActivity(new Intent(SplashActivity.this,
LoginActivity.class));
finish();
}
});
rlSplash.startAnimation(set);
}
}

View File

@ -0,0 +1,200 @@
package com.stone.slide;
import android.R.bool;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.View.MeasureSpec;
import android.widget.Scroller;
public class MyScrollLayout extends ViewGroup {
private static final String TAG = "ScrollLayout";
private VelocityTracker mVelocityTracker; // 用于判断甩动手势
private static final int SNAP_VELOCITY = 600; //X轴速度基值大于该值时进行切换
private Scroller mScroller; // 滑动控制<EFBFBD>?
private int mCurScreen; //当前页面为第几屏
private int mDefaultScreen = 0;
private float mLastMotionX;
private OnViewChangeListener mOnViewChangeListener;
public MyScrollLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
init(context);
}
public MyScrollLayout(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init(context);
}
private void init(Context context) {
mCurScreen = mDefaultScreen;
mScroller = new Scroller(context);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
Log.e("a", "a");
if (changed) {
int childLeft = 0;
final int childCount = getChildCount();
Log.e("count", childCount+"");
for (int i = 0; i < childCount; i++) {
final View childView = getChildAt(i);
if (childView.getVisibility() != View.GONE) {
final int childWidth = childView.getMeasuredWidth();
childView.layout(childLeft, 0, childLeft + childWidth,
childView.getMeasuredHeight());
childLeft += childWidth;
}
}
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
Log.e("b", "b");
final int width = MeasureSpec.getSize(widthMeasureSpec);
final int count = getChildCount();
for (int i = 0; i < count; i++) {
getChildAt(i).measure(widthMeasureSpec, heightMeasureSpec);
}
scrollTo(mCurScreen * width, 0);
}
public void snapToDestination() {
final int screenWidth = getWidth();
final int destScreen = (getScrollX() + screenWidth / 2) / screenWidth;
snapToScreen(destScreen);
}
//使屏幕移动到第whichScreen+1屏
public void snapToScreen(int whichScreen) {
if (getScrollX() != (whichScreen * getWidth())) {
final int delta = whichScreen * getWidth() - getScrollX();
mScroller.startScroll(getScrollX(), 0, delta, 0,
Math.abs(delta) * 2);
mCurScreen = whichScreen;
invalidate();
if (mOnViewChangeListener != null) {
mOnViewChangeListener.OnViewChange(mCurScreen);
}
}
}
@Override
public void computeScroll() {
// TODO Auto-generated method stub
if (mScroller.computeScrollOffset()) {
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
postInvalidate();
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
final int action = event.getAction();
final float x = event.getX();
final float y = event.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.i("", "onTouchEvent ACTION_DOWN");
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
mVelocityTracker.addMovement(event);
}
if (!mScroller.isFinished()) {
mScroller.abortAnimation();
}
mLastMotionX = x;
break;
case MotionEvent.ACTION_MOVE:
int deltaX = (int) (mLastMotionX - x);
if (IsCanMove(deltaX)) {
if (mVelocityTracker != null) {
mVelocityTracker.addMovement(event);
}
mLastMotionX = x;
//正向或者负向移动屏幕跟随手指移动
scrollBy(deltaX, 0);
}
break;
case MotionEvent.ACTION_UP:
int velocityX = 0;
if (mVelocityTracker != null) {
mVelocityTracker.addMovement(event);
mVelocityTracker.computeCurrentVelocity(1000);
//得到X轴方向手指移动速度
velocityX = (int) mVelocityTracker.getXVelocity();
}
//velocityX为正值说明手指向右滑动为负值说明手指向左滑动
if (velocityX > SNAP_VELOCITY && mCurScreen > 0) {
// Fling enough to move left
Log.e(TAG, "snap left");
snapToScreen(mCurScreen - 1);
} else if (velocityX < -SNAP_VELOCITY
&& mCurScreen < getChildCount() - 1) {
// Fling enough to move right
Log.e(TAG, "snap right");
snapToScreen(mCurScreen + 1);
} else {
snapToDestination();
}
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
break;
}
return true;
}
private boolean IsCanMove(int deltaX) {
//deltaX<0说明手指向右划
if (getScrollX() <= 0 && deltaX < 0) {
return false;
}
//deltaX>0说明手指向左划
if (getScrollX() >= (getChildCount() - 1) * getWidth() && deltaX > 0) {
return false;
}
return true;
}
public void SetOnViewChangeListener(OnViewChangeListener listener) {
mOnViewChangeListener = listener;
}
}

View File

@ -0,0 +1,5 @@
package com.stone.slide;
public interface OnViewChangeListener {
public void OnViewChange(int view);
}

View File

@ -0,0 +1,102 @@
package com.stone.slide;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class TestOpen extends Activity implements OnViewChangeListener{
private MyScrollLayout mScrollLayout;
private ImageView[] imgs;
private int count;
private int currentItem;
private Button startBtn;
private RelativeLayout mainRLayout;
private LinearLayout pointLLayout;
private LinearLayout leftLayout;
private LinearLayout rightLayout;
private LinearLayout animLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
}
private void initView() {
mScrollLayout = (MyScrollLayout) findViewById(R.id.ScrollLayout);
pointLLayout = (LinearLayout) findViewById(R.id.llayout);
mainRLayout = (RelativeLayout) findViewById(R.id.mainRLayout);
startBtn = (Button) findViewById(R.id.startBtn);
startBtn.setOnClickListener(onClick);
animLayout = (LinearLayout) findViewById(R.id.animLayout);
leftLayout = (LinearLayout) findViewById(R.id.leftLayout);
rightLayout = (LinearLayout) findViewById(R.id.rightLayout);
count = mScrollLayout.getChildCount();
imgs = new ImageView[count];
for(int i = 0; i< count;i++) {
imgs[i] = (ImageView) pointLLayout.getChildAt(i);
imgs[i].setEnabled(true);
imgs[i].setTag(i);
}
currentItem = 0;
imgs[currentItem].setEnabled(false);
mScrollLayout.SetOnViewChangeListener(this);
}
private View.OnClickListener onClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.startBtn:
mScrollLayout.setVisibility(View.GONE);
pointLLayout.setVisibility(View.GONE);
animLayout.setVisibility(View.VISIBLE);
mainRLayout.setBackgroundResource(R.drawable.whatsnew_bg);
Animation leftOutAnimation = AnimationUtils.loadAnimation(TestWeiXinOpen.this, R.anim.translate_left);
Animation rightOutAnimation = AnimationUtils.loadAnimation(TestWeiXinOpen.this, R.anim.translate_right);
leftLayout.startAnimation(leftOutAnimation);
rightLayout.startAnimation(rightOutAnimation);
leftOutAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
mainRLayout.setBackgroundColor(R.color.bgColor);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
leftLayout.setVisibility(View.GONE);
rightLayout.setVisibility(View.GONE);
}
});
break;
}
}
};
@Override
public void OnViewChange(int position) {
setcurrentPoint(position);
}
private void setcurrentPoint(int position) {
if(position < 0 || position > count -1 || currentItem == position) {
return;
}
imgs[currentItem].setEnabled(true);
imgs[position].setEnabled(false);
currentItem = position;
}
}

View File

@ -0,0 +1,188 @@
package com.stone.ui;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import com.stone.shop.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
/**
* 日期时间选择控件 使用方法 private EditText inputDate;//需要设置的日期时间文本编辑框 private String
* initDateTime="2012年9月3日 14:44",//初始日期时间值 在点击事件中使用
* inputDate.setOnClickListener(new OnClickListener() {
*
* @Override public void onClick(View v) { DateTimePickDialogUtil
* dateTimePicKDialog=new
* DateTimePickDialogUtil(SinvestigateActivity.this,initDateTime);
* dateTimePicKDialog.dateTimePicKDialog(inputDate);
*
* } });
*
* @author
*/
public class DateTimePickDialogUtil implements OnDateChangedListener, OnTimeChangedListener {
private DatePicker datePicker;
private TimePicker timePicker;
private AlertDialog ad;
private String dateTime;
private String initDateTime;
private Activity activity;
private DateTimeListener dateTimeListener;
/**
* 日期时间弹出选择框构造函数
*
* @param activity
* 调用的父activity
* @param initDateTime
* 初始日期时间值作为弹出窗口的标题和日期时间初始值
*/
public DateTimePickDialogUtil(Activity activity, String initDateTime) {
this.activity = activity;
this.initDateTime = initDateTime;
}
public void init(DatePicker datePicker, TimePicker timePicker) {
Calendar calendar = Calendar.getInstance();
if (!(null == initDateTime || "".equals(initDateTime))) {
calendar = this.getCalendarByInintData(initDateTime);
} else {
initDateTime = calendar.get(Calendar.YEAR) + "" + calendar.get(Calendar.MONTH) + ""
+ calendar.get(Calendar.DAY_OF_MONTH) + "" + calendar.get(Calendar.HOUR_OF_DAY) + ":"
+ calendar.get(Calendar.MINUTE);
}
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH),
this);
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
}
/**
* 弹出日期时间选择框方法
*
* @param inputDate
* :为需要设置的日期时间文本编辑框
* @return
*/
public AlertDialog dateTimePicKDialog(final DateTimeListener dateTimeListener) {
LinearLayout dateTimeLayout = (LinearLayout) activity.getLayoutInflater().inflate(R.layout.common_datetime,
null);
datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datepicker);
timePicker = (TimePicker) dateTimeLayout.findViewById(R.id.timepicker);
init(datePicker, timePicker);
timePicker.setIs24HourView(true);
timePicker.setOnTimeChangedListener(this);
ad = new AlertDialog.Builder(activity).setTitle(initDateTime).setView(dateTimeLayout)
.setPositiveButton("设置", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (dateTimeListener != null) {
dateTimeListener.onDateTimeChane(dateTime);
}
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).show();
onDateChanged(null, 0, 0, 0);
return ad;
}
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
onDateChanged(null, 0, 0, 0);
}
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// 获得日历实例
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(),
timePicker.getCurrentHour(), timePicker.getCurrentMinute());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
dateTime = sdf.format(calendar.getTime());
ad.setTitle(dateTime);
}
/**
* 实现将初始日期时间2012年07月02日 16:45 拆分成年 ,并赋值给calendar
*
* @param initDateTime
* 初始日期时间值 字符串型
* @return Calendar
*/
private Calendar getCalendarByInintData(String initDateTime) {
Calendar calendar = Calendar.getInstance();
// 将初始日期时间2012年07月02日 16:45 拆分成年
String date = spliteString(initDateTime, "", "index", "front"); // 日期
String time = spliteString(initDateTime, "", "index", "back"); // 时间
String yearStr = spliteString(date, "", "index", "front"); // 年份
String monthAndDay = spliteString(date, "", "index", "back"); // 月日
String monthStr = spliteString(monthAndDay, "", "index", "front"); //
String dayStr = spliteString(monthAndDay, "", "index", "back"); //
String hourStr = spliteString(time, ":", "index", "front"); //
String minuteStr = spliteString(time, ":", "index", "back"); //
int currentYear = Integer.valueOf(yearStr.trim()).intValue();
int currentMonth = Integer.valueOf(monthStr.trim()).intValue() - 1;
int currentDay = Integer.valueOf(dayStr.trim()).intValue();
int currentHour = Integer.valueOf(hourStr.trim()).intValue();
int currentMinute = Integer.valueOf(minuteStr.trim()).intValue();
calendar.set(currentYear, currentMonth, currentDay, currentHour, currentMinute);
return calendar;
}
/**
* 截取子串
*
* @param srcStr
* 源串
* @param pattern
* 匹配模式
* @param indexOrLast
* @param frontOrBack
* @return
*/
public static String spliteString(String srcStr, String pattern, String indexOrLast, String frontOrBack) {
String result = "";
int loc = -1;
if (indexOrLast.equalsIgnoreCase("index")) {
loc = srcStr.indexOf(pattern); // 取得字符串第一次出现的位置
} else {
loc = srcStr.lastIndexOf(pattern); // 最后一个匹配串的位置
}
if (frontOrBack.equalsIgnoreCase("front")) {
if (loc != -1)
result = srcStr.substring(0, loc); // 截取子串
} else {
if (loc != -1)
result = srcStr.substring(loc + 1, srcStr.length()); // 截取子串
}
return result;
}
public interface DateTimeListener {
void onDateTimeChane(String dateTime);
}
}