我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么用Android开发一个学生管理系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么用Android开发一个学生管理系统

本篇内容介绍了“怎么用Android开发一个学生管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

效果演示

随手做的一个小玩意,还有很多功能没有完善,倘有疏漏,万望海涵。

怎么用Android开发一个学生管理系统

实现功能总览

实现了登录、注册、忘记密码、成绩查询、考勤情况、课表查看、提交作业、课程打卡等。

代码

登录与忘记密码界面

登录与忘记密码界面采用的是TabLayout+ViewPager+PagerAdapter实现的

一、添加布局文件
 View View_HomePager = LayoutInflater.from( Student.this ).inflate( R.layout.homeppage_item,null,false ); View View_Data = LayoutInflater.from( Student.this ).inflate( R.layout.data_item,null,false ); View View_Course = LayoutInflater.from( Student.this ).inflate( R.layout.course_item,null,false ); View View_My = LayoutInflater.from( Student.this ).inflate( R.layout.my_item,null,false );
private List<View> Views = new ArrayList<>(  );
 Views.add( View_HomePager ); Views.add( View_Data ); Views.add( View_Course ); Views.add( View_My );
二、添加标题文字
private List<String> Titles = new ArrayList<>(  );
Titles.add( "首页" );Titles.add( "数据" );Titles.add( "课程" );Titles.add( "我的" );
三、绑定适配器
public class ViewPagerAdapter extends PagerAdapter {    private List<View> Views;    private List<String> Titles;    public ViewPagerAdapter(List<View> Views,List<String> Titles){        this.Views = Views;        this.Titles = Titles;    }    @Override    public int getCount() {        return Views.size();    }    @Override    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {        return view == object;    }    @NonNull    @Override    public Object instantiateItem(@NonNull ViewGroup container, int position) {        container.addView( Views.get( position ) );        return Views.get( position );    }    @Override    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {        container.removeView( Views.get( position ) );    }    @Nullable    @Override    public CharSequence getPageTitle(int position) {        return Titles.get( position );    }}
 ViewPagerAdapter adapter = new ViewPagerAdapter( Views,Titles );        for (String title : Titles){            Title.addTab( Title.newTab().setText( title ) );        }        Title.setupWithViewPager( viewPager );        viewPager.setAdapter( adapter );

注册界面

一、创建两个Drawable文件

其一

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"><solid android:color="#63B8FF"/>    <size android:width="20dp" android:height="20dp"/></shape>

其二

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">    <solid android:color="#ffffff"/>    <size android:height="20dp" android:width="20dp"/>    <stroke android:width="1dp" android:color="#EAEAEA"/></shape>
二、将其添加数组内
private final int[] Identity = {R.drawable.press_oval_textview,R.drawable.notpress_oval_textview};
三、动态变化背景
 private void SelectStudent(){        mIdentity_Student.setBackgroundResource( Identity[0] );        mIdentity_Teacher.setBackgroundResource( Identity[1] );    }    private void SelectTeacher(){        mIdentity_Student.setBackgroundResource( Identity[1] );        mIdentity_Teacher.setBackgroundResource( Identity[0] );    }

考勤界面

主要是通过绘制一个圆,圆环、内圆、文字分别使用不同的背景颜色,并将修改背景颜色的接口暴露出来。

一、CircleProgressBar代码如下
public class CircleProgressBar extends View {    // 画实心圆的画笔    private Paint mCirclePaint;    // 画圆环的画笔    private Paint mRingPaint;    // 画圆环的画笔背景色    private Paint mRingPaintBg;    // 画字体的画笔    private Paint mTextPaint;    // 圆形颜色    private int mCircleColor;    // 圆环颜色    private int mRingColor;    // 圆环背景颜色    private int mRingBgColor;    // 半径    private float mRadius;    // 圆环半径    private float mRingRadius;    // 圆环宽度    private float mStrokeWidth;    // 圆心x坐标    private int mXCenter;    // 圆心y坐标    private int mYCenter;    // 字的长度    private float mTxtWidth;    // 字的高度    private float mTxtHeight;    // 总进度    private int mTotalProgress = 100;    // 当前进度    private double mProgress;    public CircleProgressBar(Context context) {        super( context );    }    public CircleProgressBar(Context context, @Nullable AttributeSet attrs) {        super( context, attrs );        initAttrs(context,attrs);        initVariable();    }    public CircleProgressBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super( context, attrs, defStyleAttr );    }    private void initAttrs(Context context, AttributeSet attrs) {        TypedArray typeArray = context.getTheme().obtainStyledAttributes(attrs,                R.styleable.TasksCompletedView, 0, 0);        mRadius = typeArray.getDimension(R.styleable.TasksCompletedView_radius, 80);        mStrokeWidth = typeArray.getDimension(R.styleable.TasksCompletedView_strokeWidth, 10);        mCircleColor = typeArray.getColor(R.styleable.TasksCompletedView_circleColor, 0xFFFFFFFF);        mRingColor = typeArray.getColor(R.styleable.TasksCompletedView_ringColor, 0xFFFFFFFF);        mRingBgColor = typeArray.getColor(R.styleable.TasksCompletedView_ringBgColor, 0xFFFFFFFF);        mRingRadius = mRadius + mStrokeWidth / 2;    }    private void initVariable() {        //内圆        mCirclePaint = new Paint();        mCirclePaint.setAntiAlias(true);        mCirclePaint.setColor(mCircleColor);        mCirclePaint.setStyle(Paint.Style.FILL);        //外圆弧背景        mRingPaintBg = new Paint();        mRingPaintBg.setAntiAlias(true);        mRingPaintBg.setColor(mRingBgColor);        mRingPaintBg.setStyle(Paint.Style.STROKE);        mRingPaintBg.setStrokeWidth(mStrokeWidth);        //外圆弧        mRingPaint = new Paint();        mRingPaint.setAntiAlias(true);        mRingPaint.setColor(mRingColor);        mRingPaint.setStyle(Paint.Style.STROKE);        mRingPaint.setStrokeWidth(mStrokeWidth);        //mRingPaint.setStrokeCap(Paint.Cap.ROUND);//设置线冒样式,有圆 有方        //中间字        mTextPaint = new Paint();        mTextPaint.setAntiAlias(true);        mTextPaint.setStyle(Paint.Style.FILL);        mTextPaint.setColor(mRingColor);        mTextPaint.setTextSize(mRadius / 2);        Paint.FontMetrics fm = mTextPaint.getFontMetrics();        mTxtHeight = (int) Math.ceil(fm.descent - fm.ascent);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw( canvas );        mXCenter = getWidth() / 2;        mYCenter = getHeight() / 2;        //内圆        canvas.drawCircle( mXCenter, mYCenter, mRadius, mCirclePaint );        //外圆弧背景        RectF oval1 = new RectF();        oval1.left = (mXCenter - mRingRadius);        oval1.top = (mYCenter - mRingRadius);        oval1.right = mRingRadius * 2 + (mXCenter - mRingRadius);        oval1.bottom = mRingRadius * 2 + (mYCenter - mRingRadius);        canvas.drawArc( oval1, 0, 360, false, mRingPaintBg ); //圆弧所在的椭圆对象、圆弧的起始角度、圆弧的角度、是否显示半径连线        //外圆弧        if (mProgress > 0) {            RectF oval = new RectF();            oval.left = (mXCenter - mRingRadius);            oval.top = (mYCenter - mRingRadius);            oval.right = mRingRadius * 2 + (mXCenter - mRingRadius);            oval.bottom = mRingRadius * 2 + (mYCenter - mRingRadius);            canvas.drawArc( oval, -90, ((float) mProgress / mTotalProgress) * 360, false, mRingPaint ); //            //字体            String txt = mProgress + "%";            mTxtWidth = mTextPaint.measureText( txt, 0, txt.length() );            canvas.drawText( txt, mXCenter - mTxtWidth / 2, mYCenter + mTxtHeight / 4, mTextPaint );        }    }    //设置进度    public void setProgress(double progress) {        mProgress = progress;        postInvalidate();//重绘    }    public void setCircleColor(int Color){        mRingPaint.setColor( Color );        postInvalidate();//重绘    }}

签到界面

签到界面就倒计时和位置签到

一、倒计时

采用的是Thread+Handler
在子线程内总共发生两种标志至Handler内,0x00表示倒计时未完成,0x01表示倒计时完成。

private void CountDown(){        new Thread(  ){            @Override            public void run() {                super.run();                for (int j = 14; j >= 0 ; j--) {                    for (int i = 59; i >= 0; i--) {                        Message message = handler.obtainMessage();                        message.what = 0x00;                        message.arg1 = i;                        message.arg2 = j;                        handler.sendMessage( message );                        try {                            Thread.sleep( 1000 );                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                    }                }                Message message = handler.obtainMessage(  );                message.what = 0x01;                handler.sendMessage( message );            }        }.start();    }
 final Handler handler = new Handler(  ){        @Override        public void handleMessage(@NonNull Message msg) {            super.handleMessage( msg );            switch (msg.what){                case 0x00:                    if (msg.arg2 >= 10){                        SignInMinutes.setText( msg.arg2+":" );                }else if (msg.arg2 < 10 && msg.arg2 > 0){                        SignInMinutes.setText( "0"+msg.arg2+":" );                }else {                        SignInMinutes.setText( "00"+":" );                }                    if (msg.arg1 >= 10){                        SignInSeconds.setText( msg.arg1+"" );                    }else if (msg.arg1 < 10 && msg.arg1 > 0){                        SignInSeconds.setText( "0"+msg.arg1 );                    }else {                        SignInSeconds.setText( "00" );                    }                    break;                case 0x01:                    SignInSeconds.setText( "00" );                    SignInMinutes.setText( "00:" );                    break;            }        }    };
二、位置签到

位置签到采用的是百度地图SDK

public class LocationCheckIn extends AppCompatActivity {    private MapView BaiDuMapView;    private TextView CurrentPosition,mLatitude,mLongitude,CurrentDate,SignInPosition;    private Button SubmitMessage,SuccessSignIn;    private ImageView LocationSignIn_Exit;    private  View view = null;    private PopupWindow mPopupWindow;    private LocationClient client;    private BaiduMap mBaiduMap;    private double Latitude = 0;    private double Longitude = 0;    private boolean isFirstLocate = true;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate( savedInstanceState );        if (Build.VERSION.SDK_INT >= 21) {            View decorView = getWindow().getDecorView();            decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE );            getWindow().setStatusBarColor( Color.TRANSPARENT );        }        SDKInitializer.initialize( getApplicationContext() );        client = new LocationClient( getApplicationContext() );//获取全局Context        client.registerLocationListener( new MyBaiDuMap() );//注册一个定位监听器,获取位置信息,回调此定位监听器        setContentView( R.layout.activity_location_check_in );        InitView();        InitBaiDuMap();        InitPermission();        InitPopWindows();        Listener();    }    private void InitView(){        BaiDuMapView = findViewById( R.id.BaiDu_MapView );        CurrentPosition = findViewById( R.id.CurrentPosition );        SubmitMessage = findViewById( R.id.SubmitMessage );        mLatitude = findViewById( R.id.Latitude );        mLongitude = findViewById( R.id.Longitude );        LocationSignIn_Exit = findViewById( R.id.LocationSignIn_Exit );    }    private void InitPopWindows(){         view = LayoutInflater.from( LocationCheckIn.this ).inflate( R.layout.signin_success ,null,false);        CurrentDate = view.findViewById( R.id.CurrentDate );        SignInPosition = view.findViewById( R.id.SignInPosition );        SuccessSignIn = view.findViewById( R.id.Success);        mPopupWindow = new PopupWindow( view, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT );        mPopupWindow.setFocusable( true ); //获取焦点        mPopupWindow.setBackgroundDrawable( new BitmapDrawable() );        mPopupWindow.setOutsideTouchable( true ); //点击外面地方,取消        mPopupWindow.setTouchable( true ); //允许点击        mPopupWindow.setAnimationStyle( R.style.MyPopupWindow ); //设置动画        Calendar calendar = Calendar.getInstance();        int Hour = calendar.get( Calendar.HOUR_OF_DAY );        int Minute = calendar.get( Calendar.MINUTE );        String sHour,sMinute;        if (Hour < 10){            sHour = "0"+Hour;        }else {            sHour = ""+Hour;        }        if (Minute < 10){            sMinute = "0"+Minute;        }else {            sMinute = ""+Minute;        }        CurrentDate.setText( sHour+":"+sMinute );        //SignInPosition.setText( Position+"000");        SuccessSignIn.setOnClickListener( new View.OnClickListener() {            @Override            public void onClick(View v) {                mPopupWindow.dismiss();            }        } );    }    private void ShowPopWindows(){        mPopupWindow.showAtLocation( view, Gravity.CENTER,0,0 );    }    private void InitBaiDuMap(){                mBaiduMap = BaiDuMapView.getMap();//获取实例,可以对地图进行一系列操作,比如:缩放范围,移动地图        mBaiduMap.setMyLocationEnabled(true);//允许当前设备显示在地图上    }    private void navigateTo(BDLocation location){        if (isFirstLocate){            LatLng lng = new LatLng(location.getLatitude(),location.getLongitude());//指定经纬度            MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(lng);            mBaiduMap.animateMapStatus(update);            update = MapStatusUpdateFactory.zoomTo(16f);//百度地图缩放级别限定在3-19            mBaiduMap.animateMapStatus(update);            isFirstLocate = false;        }        MyLocationData.Builder builder = new MyLocationData.Builder();        builder.latitude(location.getLatitude());//纬度        builder.longitude(location.getLongitude());//经度        MyLocationData locationData = builder.build();        mBaiduMap.setMyLocationData(locationData);    }    private void InitPermission(){        List<String> PermissionList = new ArrayList<>();        //判断权限是否授权        if (ContextCompat.checkSelfPermission( LocationCheckIn.this, Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED) {            PermissionList.add( Manifest.permission.ACCESS_FINE_LOCATION );        }        if (ContextCompat.checkSelfPermission( LocationCheckIn.this, Manifest.permission.READ_PHONE_STATE ) != PackageManager.PERMISSION_GRANTED) {            PermissionList.add( Manifest.permission.READ_PHONE_STATE );        }        if (ContextCompat.checkSelfPermission( LocationCheckIn.this, Manifest.permission.WRITE_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED) {            PermissionList.add( Manifest.permission.WRITE_EXTERNAL_STORAGE );        }        if (!PermissionList.isEmpty()) {            String[] Permissions = PermissionList.toArray( new String[PermissionList.size()] );//转化为数组            ActivityCompat.requestPermissions( LocationCheckIn.this, Permissions, 1 );//一次性申请权限        } else {                        requestLocation();        }    }    //执行    private void requestLocation(){        initLocation();        client.start();    }        public  void initLocation() {        LocationClientOption option = new LocationClientOption();        option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);                option.setCoorType("bd09ll");                option.setScanSpan(3000);                option.setOpenGps(true);                option.setLocationNotify(true);                option.setIgnoreKillProcess(false);                option.SetIgnoreCacheException(false);                option.setIsNeedAltitude(true);        option.setWifiCacheTimeOut(5 * 60 * 1000);                option.setEnableSimulateGps(false);                option.setIsNeedAddress(true);                client.setLocOption(option);            }    class MyBaiDuMap implements BDLocationListener {        @Override        public void onReceiveLocation(BDLocation bdLocation) {            Latitude = bdLocation.getLatitude();//获取纬度            Longitude = bdLocation.getLongitude();//获取经度            mLatitude.setText( Latitude+"" );            mLongitude.setText( Longitude+"" );            double Radius = bdLocation.getRadius();            if (bdLocation.getLocType() == BDLocation.TypeGpsLocation || bdLocation.getLocType() == BDLocation.TypeNetWorkLocation){                navigateTo(bdLocation);            }            //StringBuilder currentPosition = new StringBuilder();            StringBuilder currentCity = new StringBuilder(  );            StringBuilder Position = new StringBuilder(  );            //currentPosition.append("纬度:").append(bdLocation.getLatitude()).append("\n");            // currentPosition.append("经度:").append(bdLocation.getLongitude()).append("\n");           //            currentPosition.append("定位方式:");            //currentPosition.append( bdLocation.getProvince() );           // Position.append( bdLocation.getCity() );            Position.append( bdLocation.getDistrict() );            Position.append( bdLocation.getStreet() );            currentCity.append( bdLocation.getProvince() );            currentCity.append( bdLocation.getCity() );            currentCity.append( bdLocation.getDistrict() );            currentCity.append( bdLocation.getStreet() );                                  //mUpdatePosition = currentPosition+"";             CurrentPosition.setText( currentCity );             SignInPosition.setText( Position);             //Position = CurrentPosition.getText().toString()+"";            //Function_CityName.setText( currentCity );        }    }    private void Listener(){        OnClick onClick = new OnClick();        SubmitMessage.setOnClickListener( onClick );        LocationSignIn_Exit.setOnClickListener( onClick );    }    class OnClick implements View.OnClickListener{        @Override        public void onClick(View v) {            switch (v.getId()){                case R.id.SubmitMessage:                    ShowPopWindows();                    break;                case R.id.LocationSignIn_Exit:                    startActivity( new Intent( LocationCheckIn.this,SignIn.class ) );            }        }    }}

成绩查询界面

采用的是MD的CardStackView,需要实现一个Adapter适配器,此适配器与RecyclerView适配器构建类似

一、创建StackAdapter 适配器
package com.franzliszt.Student.QueryScore;public class StackAdapter extends com.loopeer.cardstack.StackAdapter<Integer> {    public StackAdapter(Context context) {        super(context);    }    @Override    public void bindView(Integer data, int position, CardStackView.ViewHolder holder) {        if (holder instanceof ColorItemLargeHeaderViewHolder) {            ColorItemLargeHeaderViewHolder h = (ColorItemLargeHeaderViewHolder) holder;            h.onBind(data, position);        }        if (holder instanceof ColorItemWithNoHeaderViewHolder) {            ColorItemWithNoHeaderViewHolder h = (ColorItemWithNoHeaderViewHolder) holder;            h.onBind(data, position);        }        if (holder instanceof ColorItemViewHolder) {            ColorItemViewHolder h = (ColorItemViewHolder) holder;            h.onBind(data, position);        }    }    @Override    protected CardStackView.ViewHolder onCreateView(ViewGroup parent, int viewType) {        View view;        switch (viewType) {            case R.layout.list_card_item_larger_header:                view = getLayoutInflater().inflate(R.layout.list_card_item_larger_header, parent, false);                return new ColorItemLargeHeaderViewHolder(view);            case R.layout.list_card_item_with_no_header:                view = getLayoutInflater().inflate(R.layout.list_card_item_with_no_header, parent, false);                return new ColorItemWithNoHeaderViewHolder(view);            case R.layout.other_item:                view = getLayoutInflater().inflate(R.layout.other_item, parent, false);                return new ColorItemViewHolder(view);            case R.layout.other_item_thank:                view = getLayoutInflater().inflate(R.layout.other_item_thank, parent, false);                return new ColorItemViewHolder(view);            case R.layout.other_item_note_1:                view = getLayoutInflater().inflate(R.layout.other_item_note_1, parent, false);                return new ColorItemViewHolder(view);            case R.layout.other_item_note_2:                view = getLayoutInflater().inflate(R.layout.other_item_note_2, parent, false);                return new ColorItemViewHolder(view);            default:                view = getLayoutInflater().inflate(R.layout.first_semester, parent, false);                return new ColorItemViewHolder(view);        }    }    @Override    public int getItemViewType(int position) {        if (position == 6 ){//TODO TEST LARGER ITEM            return R.layout.other_item;        } else if (position == 7){            return R.layout.other_item_thank;        }else if (position == 8){            return R.layout.other_item_note_1;        }else if (position == 9){            return R.layout.other_item_note_2;        } else {            return R.layout.first_semester;        }    }    static class ColorItemViewHolder extends CardStackView.ViewHolder {        View mLayout;        View mContainerContent;        TextView mTextTitle;        TextView ClassName1,ClassStatus1,ClassMethod1,ClassFlag1,Credit1,GradePoint1;        TextView ClassName2,ClassStatus2,ClassMethod2,ClassFlag2,Credit2,GradePoint2;        TextView ClassName3,ClassStatus3,ClassMethod3,ClassFlag3,Credit3,GradePoint3;        TextView ClassName4,ClassStatus4,ClassMethod4,ClassFlag4,Credit4,GradePoint4;        TextView TitleContent,MoreInfo;        public ColorItemViewHolder(View view) {            super(view);            mLayout = view.findViewById(R.id.frame_list_card_item);            mContainerContent = view.findViewById(R.id.container_list_content);            mTextTitle =  view.findViewById(R.id.text_list_card_title);            TitleContent = view.findViewById( R.id.TitleContent );            MoreInfo = view.findViewById( R.id.MoreInfo );            ClassName1 =  view.findViewById(R.id.ClassName1);            ClassStatus1 =  view.findViewById(R.id.ClassStatus1);            ClassMethod1 =  view.findViewById(R.id.ClassMethod1);            ClassFlag1 =  view.findViewById(R.id.ClassFlag1);            Credit1 =  view.findViewById(R.id.Credit1);            GradePoint1=  view.findViewById(R.id.GradePoint1);            ClassName2 =  view.findViewById(R.id.ClassName2);            ClassStatus2 =  view.findViewById(R.id.ClassStatus2);            ClassMethod2 =  view.findViewById(R.id.ClassMethod2);            ClassFlag2 =  view.findViewById(R.id.ClassFlag2);            Credit2 =  view.findViewById(R.id.Credit2);            GradePoint2=  view.findViewById(R.id.GradePoint2);            ClassName3 =  view.findViewById(R.id.ClassName3);            ClassStatus3 =  view.findViewById(R.id.ClassStatus3);            ClassMethod3 =  view.findViewById(R.id.ClassMethod3);            ClassFlag3 =  view.findViewById(R.id.ClassFlag3);            Credit3 =  view.findViewById(R.id.Credit3);            GradePoint3=  view.findViewById(R.id.GradePoint3);            ClassName4 =  view.findViewById(R.id.ClassName4);            ClassStatus4 =  view.findViewById(R.id.ClassStatus4);            ClassMethod4 =  view.findViewById(R.id.ClassMethod4);            ClassFlag4 =  view.findViewById(R.id.ClassFlag4);            Credit4 =  view.findViewById(R.id.Credit4);            GradePoint4 = view.findViewById(R.id.GradePoint4);        }        @Override        public void onItemExpand(boolean b) {            mContainerContent.setVisibility(b ? View.VISIBLE : View.GONE);        }        public void onBind(Integer data, int position) {            mLayout.getBackground().setColorFilter( ContextCompat.getColor(getContext(), data), PorterDuff.Mode.class="lazy" data-src_IN);            //mTextTitle.setText( String.valueOf(position));            if (position == 0){                mTextTitle.setText( "2019-2020第一学期");                ClassName1.setText( "物联网概论" );                ClassStatus1.setText( "必修课" );                ClassFlag1.setText( "辅修标记:   主修" );                ClassMethod1.setText( "考核方式:   考试" );                Credit1.setText( "学分:   3.0" );                GradePoint1.setText( "绩点:  3.0" );                ClassName2.setText( "应用数学" );                ClassStatus2.setText( "必修课" );                ClassFlag2.setText( "辅修标记:   主修" );                ClassMethod2.setText( "考核方式:   考试" );                Credit2.setText( "学分:   3.0" );                GradePoint2.setText( "绩点:  2.0" );                ClassName3.setText( "大学英语" );                ClassStatus3.setText( "必修课" );                ClassFlag3.setText( "辅修标记:   主修" );                ClassMethod3.setText( "考核方式:   考试" );                Credit3.setText( "学分:   3.0" );                GradePoint3.setText( "绩点:  1.0" );                ClassName4.setText( "军事理论" );                ClassStatus4.setText( "选修课" );                ClassFlag4.setText( "辅修标记:   主修" );                ClassMethod4.setText( "考核方式:   考查" );                Credit4.setText( "学分:   2.0" );                GradePoint4.setText( "绩点:  3.0" );            }else if (position == 1){                mTextTitle.setText( "2019-2020第二学期");                ClassName1.setText( "电子技术" );                ClassStatus1.setText( "必修课" );                ClassFlag1.setText( "辅修标记:   主修" );                ClassMethod1.setText( "考核方式:   考试" );                Credit1.setText( "学分:   4.0" );                GradePoint1.setText( "绩点:  3.0" );                ClassName2.setText( "C语言程序设计" );                ClassStatus2.setText( "必修课" );                ClassFlag2.setText( "辅修标记:   主修" );                ClassMethod2.setText( "考核方式:   考试" );                Credit2.setText( "学分:   2.0" );                GradePoint2.setText( "绩点:  4.0" );                ClassName3.setText( "大学体育" );                ClassStatus3.setText( "必修课" );                ClassFlag3.setText( "辅修标记:   主修" );                ClassMethod3.setText( "考核方式:   考试" );                Credit3.setText( "学分:   1.5" );                GradePoint3.setText( "绩点:  3.0" );                ClassName4.setText( "音乐鉴赏" );                ClassStatus4.setText( "选修课" );                ClassFlag4.setText( "辅修标记:   主修" );                ClassMethod4.setText( "考核方式:   考查" );                Credit4.setText( "学分:   1.5" );                GradePoint4.setText( "绩点:  3.0" );            }else if (position == 2){                mTextTitle.setText( "2020-2021第一学期");                ClassName1.setText( "单片机技术应用" );                ClassStatus1.setText( "必修课" );                ClassFlag1.setText( "辅修标记:   主修" );                ClassMethod1.setText( "考核方式:   考试" );                Credit1.setText( "学分:   4.5" );                GradePoint1.setText( "绩点:  4.0" );                ClassName2.setText( "JAVA程序设计" );                ClassStatus2.setText( "必修课" );                ClassFlag2.setText( "辅修标记:   主修" );                ClassMethod2.setText( "考核方式:   考试" );                Credit2.setText( "学分:   1.0" );                GradePoint2.setText( "绩点:  3.0" );                ClassName3.setText( "自动识别技术" );                ClassStatus3.setText( "必修课" );                ClassFlag3.setText( "辅修标记:   主修" );                ClassMethod3.setText( "考核方式:   考试" );                Credit3.setText( "学分:   4.5" );                GradePoint3.setText( "绩点:  4.0" );                ClassName4.setText( "文化地理" );                ClassStatus4.setText( "选修课" );                ClassFlag4.setText( "辅修标记:   主修" );                ClassMethod4.setText( "考核方式:   考查" );                Credit4.setText( "学分:   1.0" );                GradePoint4.setText( "绩点:  4.0" );            }else if (position == 3){                mTextTitle.setText( "2020-2021第二学期");                ClassName1.setText( "Android程序设计" );                ClassStatus1.setText( "必修课" );                ClassFlag1.setText( "辅修标记:   主修" );                ClassMethod1.setText( "考核方式:   考试" );                Credit1.setText( "学分:   1.0" );                GradePoint1.setText( "绩点:  4.0" );                ClassName2.setText( "无线传感网络技术" );                ClassStatus2.setText( "必修课" );                ClassFlag2.setText( "辅修标记:   主修" );                ClassMethod2.setText( "考核方式:   考试" );                Credit2.setText( "学分:   1.0" );                GradePoint2.setText( "绩点:  4.0" );                ClassName3.setText( "体育" );                ClassStatus3.setText( "必修课" );                ClassFlag3.setText( "辅修标记:   主修" );                ClassMethod3.setText( "考核方式:   考试" );                Credit3.setText( "学分:   1.5" );                GradePoint3.setText( "绩点:  3.0" );                ClassName4.setText( "有效沟通技巧" );                ClassStatus4.setText( "选修课" );                ClassFlag4.setText( "辅修标记:   主修" );                ClassMethod4.setText( "考核方式:   考查" );                Credit4.setText( "学分:   1.5" );                GradePoint4.setText( "绩点:  3.0" );            }else if (position == 4){                mTextTitle.setText( "2021-2022第一学期");                ClassName1.setText( "物联网概论" );                ClassStatus1.setText( "必修课" );                ClassFlag1.setText( "辅修标记:   主修" );                ClassMethod1.setText( "考核方式:   考试" );                Credit1.setText( "学分:   3.0" );                GradePoint1.setText( "绩点:  3.0" );                ClassName2.setText( "应用数学" );                ClassStatus2.setText( "必修课" );                ClassFlag2.setText( "辅修标记:   主修" );                ClassMethod2.setText( "考核方式:   考试" );                Credit2.setText( "学分:   3.0" );                GradePoint2.setText( "绩点:  2.0" );                ClassName3.setText( "大学英语" );                ClassStatus3.setText( "必修课" );                ClassFlag3.setText( "辅修标记:   主修" );                ClassMethod3.setText( "考核方式:   考试" );                Credit3.setText( "学分:   3.0" );                GradePoint3.setText( "绩点:  1.0" );                ClassName4.setText( "军事理论" );                ClassStatus4.setText( "必修课" );                ClassFlag4.setText( "辅修标记:   主修" );                ClassMethod4.setText( "考核方式:   考查" );                Credit4.setText( "学分:   2.0" );                GradePoint4.setText( "绩点:  3.0" );            }else if (position == 5){                mTextTitle.setText( "2021-2022第二学期");                ClassName1.setText( "物联网概论" );                ClassStatus1.setText( "必修课" );                ClassFlag1.setText( "辅修标记:   主修" );                ClassMethod1.setText( "考核方式:   考试" );                Credit1.setText( "学分:   3.0" );                GradePoint1.setText( "绩点:  3.0" );                ClassName2.setText( "应用数学" );                ClassStatus2.setText( "必修课" );                ClassFlag2.setText( "辅修标记:   主修" );                ClassMethod2.setText( "考核方式:   考试" );                Credit2.setText( "学分:   3.0" );                GradePoint2.setText( "绩点:  2.0" );                ClassName3.setText( "大学英语" );                ClassStatus3.setText( "必修课" );                ClassFlag3.setText( "辅修标记:   主修" );                ClassMethod3.setText( "考核方式:   考试" );                Credit3.setText( "学分:   3.0" );                GradePoint3.setText( "绩点:  1.0" );                ClassName4.setText( "军事理论" );                ClassStatus4.setText( "必修课" );                ClassFlag4.setText( "辅修标记:   主修" );                ClassMethod4.setText( "考核方式:   考查" );                Credit4.setText( "学分:   2.0" );                GradePoint4.setText( "绩点:  3.0" );            }else if (position == 6){                mTextTitle.setText( "毕业设计");            }else if (position == 7){                mTextTitle.setText( "致谢");            }else if (position == 8){                mTextTitle.setText( "校园杂记一");            }else if (position == 9){                mTextTitle.setText( "校园杂记二");            }else {                mTextTitle.setText( String.valueOf(position));            }        }    }    static class ColorItemWithNoHeaderViewHolder extends CardStackView.ViewHolder {        View mLayout;        TextView mTextTitle;        public ColorItemWithNoHeaderViewHolder(View view) {            super(view);            mLayout = view.findViewById(R.id.frame_list_card_item);            mTextTitle = (TextView) view.findViewById(R.id.text_list_card_title);        }        @Override        public void onItemExpand(boolean b) {        }        public void onBind(Integer data, int position) {            mLayout.getBackground().setColorFilter(ContextCompat.getColor(getContext(), data), PorterDuff.Mode.class="lazy" data-src_IN);            mTextTitle.setText( String.valueOf(position));        }    }    static class ColorItemLargeHeaderViewHolder extends CardStackView.ViewHolder {        View mLayout;        View mContainerContent;        TextView mTextTitle;        public ColorItemLargeHeaderViewHolder(View view) {            super(view);            mLayout = view.findViewById(R.id.frame_list_card_item);            mContainerContent = view.findViewById(R.id.container_list_content);            mTextTitle = view.findViewById(R.id.text_list_card_title);        }        @Override        public void onItemExpand(boolean b) {            mContainerContent.setVisibility(b ? View.VISIBLE : View.GONE);        }        @Override        protected void onAnimationStateChange(int state, boolean willBeSelect) {            super.onAnimationStateChange(state, willBeSelect);            if (state == CardStackView.ANIMATION_STATE_START && willBeSelect) {                onItemExpand(true);            }            if (state == CardStackView.ANIMATION_STATE_END && !willBeSelect) {                onItemExpand(false);            }        }        public void onBind(Integer data, int position) {            mLayout.getBackground().setColorFilter(ContextCompat.getColor(getContext(), data), PorterDuff.Mode.class="lazy" data-src_IN);            mTextTitle.setText( String.valueOf(position));            mTextTitle.setText( "2019-2020第一学期");            itemView.findViewById(R.id.text_view).setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    ((CardStackView)itemView.getParent()).performItemClick(ColorItemLargeHeaderViewHolder.this);                }            });        }    }}

二、绑定适配器

 QueryScoreCardStackView.setItemExpendListener( this );        adapter = new StackAdapter( this );        QueryScoreCardStackView.setAdapter( adapter );

三、为每一个子项添加背景色

public static Integer[] COLOR_DATAS = new Integer[]{            R.color.color_1,            R.color.color_2,            R.color.color_3,            R.color.color_4,            R.color.color_5,            R.color.color_6,            R.color.color_7,            R.color.color_8,            R.color.color_9,            R.color.color_10,    };
 new Handler(  ).postDelayed( new Runnable() {            @Override            public void run() {                adapter.updateData( Arrays.asList( COLOR_DATAS ) );            }        } ,200);

“怎么用Android开发一个学生管理系统”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么用Android开发一个学生管理系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用Android开发一个学生管理系统

本篇内容介绍了“怎么用Android开发一个学生管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果演示随手做的一个小玩意,还有很多功
2023-06-25

C#怎么用ASP.NET Core开发学生管理系统

本篇内容介绍了“C#怎么用ASP.NET Core开发学生管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!涉及知识点开发学生管理系统,
2023-06-22

C#怎么开发Winform实现学生管理系统

这篇文章主要介绍“C#怎么开发Winform实现学生管理系统”,在日常操作中,相信很多人在C#怎么开发Winform实现学生管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么开发Winform实现
2023-06-30

如何利用MySQL和C#开发一个简单的学生管理系统

如何利用MySQL和C#开发一个简单的学生管理系统引言:学生管理系统是学校管理学生信息的重要工具,它可以帮助学校高效地管理学生的各项数据,包括个人信息、成绩、课程安排等。本文将介绍如何使用MySQL数据库和C#编程语言来开发一个简单的学生管
2023-10-22

使用python怎么制作一个学生信息管理系统

使用python怎么制作一个学生信息管理系统?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究
2023-06-14

Python实现一个完整学生管理系统

这篇文章主要为大家详细介绍了如何利用python实现学生管理系统(面向对象版),文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2023-01-29

使用Java编写一个学生成绩管理系统

这篇文章将为大家详细讲解有关使用Java编写一个学生成绩管理系统,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java可以用来干什么Java主要应用于:1. web开发;2. Android
2023-06-14

基于JavaSwing+mysql开发一个学生社团管理系统设计和实现

前言: 项目是使用Java swing+mysql开发,可实现基础数据维护、用户登录注册、社团信息列表查看、社团信息添加、社团信息修改、社团信息删除以及退出注销等功能、界面设计比较简单易学、适合作为Java课设设计以及学习技术使用。 引言
2022-05-11

怎么用VUE实现一个简单的学生信息管理系统

本篇内容主要讲解“怎么用VUE实现一个简单的学生信息管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用VUE实现一个简单的学生信息管理系统”吧!一、主要功能本次任务主要是使用 VUE
2023-06-27

使用python编写一个学生通讯录管理系统

本篇文章为大家展示了使用python编写一个学生通讯录管理系统,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。功能模块分析:1.首页(菜单功能)2.添加学生3.删除学生4.修改学生5.统计通讯录联系人
2023-06-06

怎么在java中使用mysql实现一个学生信息管理系统

今天就跟大家聊聊有关怎么在java中使用mysql实现一个学生信息管理系统,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体内容如下import java.awt.BorderLay
2023-05-30

C语言实现学生信息管理系统开发

这篇文章主要为大家详细介绍了C语言实现学生信息管理系统开发,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2022-11-13

Java怎么实现学生管理系统

这篇文章给大家分享的是有关Java怎么实现学生管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言我们前面写了通讯录管理系统,现在我们来写个学生管理系统,其实主干代码都一 不过,在学生管理系统中我添加和
2023-06-25

怎么在钉钉开发一个固定资产管理系统

首先,要选择合适的开发工具。钉钉提供了多种开发工具,包括JIRA、EaseUS、Teambition等,根据自己的需求选择适合的开发工具,可以大大提高开发效率和质量。其次,需要选择合适的数据库类型。钉钉的数据库类型包括SQLAlchemy、SQLAlchemyMixins、SQLAlchemyBlobStorage等,
怎么在钉钉开发一个固定资产管理系统
2023-10-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录