码迷,mamicode.com
首页 > 其他好文 > 详细

课程表

时间:2015-04-07 00:35:21      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

package com.liupan.mydemo.widget;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import com.google.gson.Gson;
import com.liupan.mydemo.R;
import com.liupan.mydemo.json.CourseList;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
* 描述:显示课程表控件的类
* @author
*
*/
public class ScheduleLayout extends RelativeLayout{

private static final String DEBUG = "DEBUG";
private Context context ;
/**
* 课程表的页数
*/
int pagerNumber;
/**
* 存放所有课程数据的集合
*/
private ArrayList<CourseList> Course_data;

 


public ScheduleLayout(Context context) {
super(context);

this.context=context;
//初始化数据
initData();
//初始化控件
//initView();

}

 

/**
* 描述:初始化控件
*/
private void initView( ) {

LinearLayout inflate = (LinearLayout) View.inflate(context, R.layout.schedule, this);
//显示课程列表的ViewPager
ViewPager schedule_vpr = (ViewPager) inflate.findViewById(R.id.schedule_vpr);
//显示时间刻度LinearLayout
LinearLayout time_day = (LinearLayout) findViewById(R.id.time_day);
//初始化时间刻度
initTimeList(time_day);
//初始化课程列表
initCourseList();
schedule_vpr.setAdapter(new MyAdapter());

}

/**
* 描述:初始化课程列表的控件
* 每个ViewPager
*/
private void initCourseList() {
//创建每周的数据容器
for (int i = 0; i <pagerNumber; i++) {

LinearLayout week_llt = new LinearLayout(context);
week_llt.setOrientation(LinearLayout.HORIZONTAL);
//获取每周对应的天数
int size = Course_data.get(i).week.size();
Log.d(DEBUG,"第"+i+"周的上课天数是:"+size);
//创建每天的数据容器
for (int j = 0; 0<size; j++) {
LinearLayout day_llt = new LinearLayout(context);
day_llt.setOrientation(LinearLayout.VERTICAL);
//5个LinearLayout水平布局,每个权重为1
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,
LayoutParams.MATCH_PARENT, 1);
day_llt.setLayoutParams(params );
week_llt.addView(day_llt);
Course_data.get(i).week.get(i).monday.size();
/*for (int k = 0; k < array.length; k++) {

}*/
}
}

}

 

/**
* 描述:初始化时间列表控件
* 从9:00开始到24:00
* @param llt 显示时间列表的控件
*/
private void initTimeList(LinearLayout llt) {
for (int i = 9; i <= 24; i++) {
TextView textView = new TextView(context);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,1);
textView.setLayoutParams(params);
textView.setText(i+":00");
llt.addView(textView);
}
}


/**
*
*/
private void initData() {

try {
Properties pro = new Properties();
InputStream in = context.getAssets().open("courselistpager.properties");
pro.load(in);
//从配置文件当中获取课程表的页数
String pagerNumber = pro.getProperty("pagerNumber","3");
this.pagerNumber = Integer.parseInt(pagerNumber);
Log.d(DEBUG,"pagerNumber"+pagerNumber);
Toast.makeText(context, "pagerNumber"+pagerNumber, 1).show();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

try {
Course_data = new ArrayList<CourseList>();

for (int i = 1; i <= this.pagerNumber; i++) {
InputStream open = context.getAssets().open("week_"+i+".json");
byte[] buffer=new byte[open.available()];
open.read(buffer);
String gson_data = new String(buffer,"GBK");
Gson gson =new Gson();
CourseList fromJson = gson.fromJson(gson_data, CourseList.class);
Course_data.add(fromJson);
Log.d(DEBUG," fromJson.week.size()"+ fromJson.week.size());
Log.d(DEBUG," fromJson.week.get(0).monday.get(0).time"+ fromJson.week.get(0).monday.get(0).time);
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 描述:课程表ViewPager的适配器
* @author Administrator
*
*/
private class MyAdapter extends PagerAdapter {

@Override
public int getCount() {
// TODO Auto-generated method stub
return pagerNumber;
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub

super.destroyItem(container, position, object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
return super.instantiateItem(container, position);
}

}

}

 

 

package com.liupan.mydemo.widgetTestActivity;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import com.google.gson.Gson;
import com.liupan.mydemo.json.CourseList;
import com.liupan.mydemo.widget.ScheduleLayout;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class ScheduleTestActivity extends Activity{
String DEBUG="debug";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
ScheduleLayout scheduleLayout = new ScheduleLayout(this);
setContentView(scheduleLayout);
}

}

 

 

package com.liupan.mydemo.json;

import java.util.List;

public class CourseList {
public List<Week> week;


public class Week{
public List<Lesson> monday;
public List<Lesson> tursday;
public List<Lesson> wednsday;
public List<Lesson> thursday;
public List<Lesson> friday;
}

public class Lesson{
public String course;
public String teatch;
public String time;
}
}

 

 

 

{"week":[{"monday":[{"course":"香蕉分析1","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"tursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"wednsday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"thursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"friday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]}]}

 

{"week":[{"monday":[{"course":"香蕉分析2","time":"09:10-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"tursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"wednsday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"thursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"friday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]

 

{"week":[{"monday":[{"course":"香蕉分析3","time":"09:20-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"tursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"wednsday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"thursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"friday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]}]}

 

{"week":[{"monday":[{"course":"香蕉分析4","time":"09:30-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"tursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"wednsday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"thursday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]},{"friday":[{"course":"香蕉分析","time":"09:00-10:00","teatch":"白老师"},{"course":"项目分析","time":"10:30-12:00","teatch":"张老师"},{"course":"苹果分析","time":"15:00-17:00","teatch":"李老师"},{"course":"项目分析","time":"18:00-19:30","teatch":"白老师"}]}]}

 

courselistpager.properties:pagerNumber=4

 

 

finished.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="40dp" android:height="10dp"/>
<solid android:color="#ffcccc"/>
</shape>

 

 

unfinished.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="40dp" android:height="10dp"/>
<solid android:color="#000000"/>
</shape>

 

 

schedule.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<!-- 标题栏 -->

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#cccccc" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text="课程表"
android:textColor="#000000"
android:textSize="23sp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="180dp"
android:drawableLeft="@drawable/finished"
android:drawablePadding="5dp"
android:text="完成"
android:textColor="#000000"
android:textSize="18sp" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:drawableLeft="@drawable/unfinished"
android:drawablePadding="5dp"
android:text="未完成"
android:textColor="#000000"
android:textSize="18sp" />
</RelativeLayout>

<!-- 星期栏 -->

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.7"
android:background="#ff0000"
android:orientation="horizontal" >

<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#ff00ff"
android:gravity="center"
android:text="时间"
android:textSize="18sp" />

<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="#00cc00"
android:gravity="center"
android:text="星期一"
android:textSize="18sp" />

<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="#88cccc"
android:gravity="center"
android:text="星期二"
android:textSize="18sp" />

<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="#00cc00"
android:gravity="center"
android:text="星期三"
android:textSize="18sp" />

<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="#88cccc"
android:gravity="center"
android:text="星期四"
android:textSize="18sp" />

<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:background="#00cc00"
android:gravity="center"
android:text="星期五"
android:textSize="18sp" />
</LinearLayout>

<!-- 时间刻度栏和课程列表栏 ,上下滑动 -->

<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9" >

<!-- 时间刻度栏和课程栏 ,水平布局 -->

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<!-- 时间刻度栏,垂直布局 -->

<LinearLayout
android:id="@+id/time_day"
android:layout_width="0dp"
android:layout_height="600dp"
android:layout_weight="1"
android:orientation="vertical" />

<!-- 课程栏的ViewPager -->

<android.support.v4.view.ViewPager
android:id="@+id/schedule_vpr"
android:layout_width="0dp"
android:layout_height="600dp"
android:layout_weight="15"
android:background="#0000ff" >
</android.support.v4.view.ViewPager>
</LinearLayout>
</ScrollView>

</LinearLayout>

课程表

标签:

原文地址:http://www.cnblogs.com/a454892215/p/4397211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!