Android实现学生管理系统_Android

本文实例为大家分享了Android实现学生管理系统的关键性代码,供大家参考,具体内容如下

局部效果图:

 

实现代码:

1、布局

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.itheima27.sutdentmanager"
  android:versionCode="1"
  android:versionName="1.0" > 

  <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

  <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
      android:name="com.itheima27.sutdentmanager.MainActivity"
      android:label="@string/app_name"
      android:theme="@android:style/Theme.NoTitleBar" >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
  </application> 

</manifest> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@android:color/white"
  android:orientation="vertical" > 

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="5dip"
    android:text="学生管理系统"
    android:textColor="#99CCFF"
    android:textSize="23sp" /> 

  <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dip"
    android:padding="5dip" > 

    <TextView
      android:id="@+id/tv_name"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:paddingLeft="15dip"
      android:paddingRight="15dip"
      android:text="姓名"
      android:textSize="18sp" /> 

    <TextView
      android:id="@+id/tv_sex"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dip"
      android:layout_toRightOf="@id/tv_name"
      android:paddingLeft="15dip"
      android:paddingRight="15dip"
      android:text="性别"
      android:textSize="18sp" /> 

    <TextView
      android:id="@+id/tv_age"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dip"
      android:layout_toRightOf="@id/tv_sex"
      android:paddingLeft="15dip"
      android:paddingRight="15dip"
      android:text="年龄"
      android:textSize="18sp" /> 

    <EditText
      android:id="@+id/et_name"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@id/tv_name"
      android:layout_alignRight="@id/tv_name"
      android:layout_below="@id/tv_name"
      android:singleLine="true" /> 

    <EditText
      android:id="@+id/et_sex"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@id/tv_sex"
      android:layout_alignRight="@id/tv_sex"
      android:layout_below="@id/tv_sex"
      android:singleLine="true" /> 

    <EditText
      android:id="@+id/et_age"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@id/tv_age"
      android:layout_alignRight="@id/tv_age"
      android:layout_below="@id/tv_age"
      android:inputType="number"
      android:singleLine="true" /> 

    <Button
      android:id="@+id/btn_add_student"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignBaseline="@id/et_age"
      android:layout_toRightOf="@id/et_age"
      android:text="添加学生"
      android:textSize="20sp" />
  </RelativeLayout> 

  <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" > 

    <LinearLayout
      android:id="@+id/ll_student_list"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_margin="1dip"
      android:orientation="vertical"
      android:padding="5dip" >
    </LinearLayout>
  </ScrollView> 

  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dip"
    android:orientation="horizontal" > 

    <Button
      android:id="@+id/btn_save"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="保存数据"
      android:textSize="20sp" /> 

    <Button
      android:id="@+id/btn_restore"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="恢复数据"
      android:textSize="20sp" />
  </LinearLayout> 

</LinearLayout>

2、关键代码:

package com.itheima27.sutdentmanager.entities; 

public class Student { 

  private String name;
  private String sex;
  private Integer age;
  public Student(String name, String sex, Integer age) {
    super();
    this.name = name;
    this.sex = sex;
    this.age = age;
  }
  public Student() {
    super();
    // TODO Auto-generated constructor stub
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  public Integer getAge() {
    return age;
  }
  public void setAge(Integer age) {
    this.age = age;
  }
  @Override
  public String toString() {
    return "Student [name=" + name + ", sex=" + sex + ", age=" + age + "]";
  }
} 
package com.itheima27.sutdentmanager; 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; 

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer; 

import com.itheima27.sutdentmanager.entities.Student; 

import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.Color;
import android.text.TextUtils;
import android.util.Xml;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener { 

  private EditText etName;
  private EditText etSex;
  private EditText etAge;
  private LinearLayout llStudentList;
  private List<Student> studentList;
  private String filePath; 

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); 

    init();
  } 

  private void init() {
    etName = (EditText) findViewById(R.id.et_name);
    etSex = (EditText) findViewById(R.id.et_sex);
    etAge = (EditText) findViewById(R.id.et_age); 

    llStudentList = (LinearLayout) findViewById(R.id.ll_student_list); 

    findViewById(R.id.btn_save).setOnClickListener(this);
    findViewById(R.id.btn_restore).setOnClickListener(this);
    findViewById(R.id.btn_add_student).setOnClickListener(this); 

    studentList = new ArrayList<Student>();
    filePath = Environment.getExternalStorageDirectory().getPath() + "/student.xml";
  } 

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btn_save:
      if(studentList.size() > 0) {
        if(saveStudent2Local()) {
          Toast.makeText(this, "保存成功", 0).show();
        } else {
          Toast.makeText(this, "保存失败", 0).show();
        }
      } else {
        Toast.makeText(this, "当前没有数据", 0).show();
      }
      break;
    case R.id.btn_restore:
      if(restoreStudentFromLocal()) {
        Toast.makeText(this, "恢复成功", 0).show();
      } else {
        Toast.makeText(this, "恢复失败", 0).show();
      }
      break;
    case R.id.btn_add_student:
      addStudent();
      break;
    default:
      break;
    }
  } 

  private boolean restoreStudentFromLocal() {
    try {
      XmlPullParser parser = Xml.newPullParser();
      parser.setInput(new FileInputStream(filePath), "utf-8"); 

      int eventType = parser.getEventType(); 

      studentList.clear(); 

      Student student = null;
      String nodeName = null;
      while(eventType != XmlPullParser.END_DOCUMENT) {
        nodeName = parser.getName();
        switch (eventType) {
        case XmlPullParser.START_TAG:
          if("student".equals(nodeName)) {
            student = new Student();
          } else if("name".equals(nodeName)) {
            student.setName(parser.nextText());
          } else if("sex".equals(nodeName)) {
            student.setSex(parser.nextText());
          } else if("age".equals(nodeName)) {
            student.setAge(Integer.valueOf(parser.nextText()));
          }
          break;
        case XmlPullParser.END_TAG:
          if("student".equals(nodeName)) {
            studentList.add(student);
          }
          break;
        default:
          break;
        }
        eventType = parser.next();
      }
      refreshStudentList(); 

      return true;
    } catch (Exception e) {
      e.printStackTrace();
    }
    return false;
  } 

  private void refreshStudentList() {
    llStudentList.removeAllViews();
    TextView childView;
    for (Student student : studentList) {
      childView = new TextView(this);
      childView.setTextSize(23);
      childView.setTextColor(Color.BLACK);
      childView.setText("  " + student.getName() + "  " + student.getSex() + "  " + student.getAge());
      llStudentList.addView(childView);
    }
  } 

  private boolean saveStudent2Local() {
    try {
      XmlSerializer serializer = Xml.newSerializer();
      serializer.setOutput(new FileOutputStream(filePath), "utf-8"); 

      serializer.startDocument("utf-8", true);
      serializer.startTag(null, "infos");
      for (Student stu : studentList) {
        serializer.startTag(null, "student"); 

        serializer.startTag(null, "name");
        serializer.text(stu.getName());
        serializer.endTag(null, "name"); 

        serializer.startTag(null, "sex");
        serializer.text(stu.getSex());
        serializer.endTag(null, "sex"); 

        serializer.startTag(null, "age");
        serializer.text(String.valueOf(stu.getAge()));
        serializer.endTag(null, "age"); 

        serializer.endTag(null, "student");
      }
      serializer.endTag(null, "infos");
      serializer.endDocument();
      return true;
    } catch (Exception e) {
      e.printStackTrace();
    }
    return false;
  } 

  private void addStudent() {
    String name = etName.getText().toString();
    String sex = etSex.getText().toString();
    String age = etAge.getText().toString(); 

    if(!TextUtils.isEmpty(name)
        && !TextUtils.isEmpty(sex)
        && !TextUtils.isEmpty(age)) {
      studentList.add(new Student(name, sex, Integer.valueOf(age)));
      TextView childView = new TextView(this);
      childView.setTextSize(23);
      childView.setTextColor(Color.BLACK);
      childView.setText("  " + name + "  " + sex + "  " + age);
      llStudentList.addView(childView);
    } else {
      Toast.makeText(this, "请正确输入", 0).show();
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Android管理系统
java实现学生管理系统、链表实现学生管理系统、学生信息管理系统实现、c 实现学生管理系统、android学生管理系统,以便于您获取更多的相关知识。

时间: 2025-01-30 13:55:28

Android实现学生管理系统_Android的相关文章

简单实现Android学生管理系统(附源码)_Android

本文实例讲述了Android实现学生管理系统,分享给大家供大家参考.具体如下: (1)管理系统实现的功能主要是:学生.教师的注册登录,和选课,以及修改学生的成绩等基本简单的功能,最主要的是实现一些Dialog的使用. 界面如下: (2)主要代码如下:(个人留作笔记,如需要完整代码,在最下边免费下载) 下边是一个适配器,适配器是为了一个listvie进行设置值,其中加载的是一个itemview,适配器中还是用了继承的方法,用于通知适配器进行更新. public class CourseAdapte

【黑马Android】(03)学生管理系统/动态刷新界面

学生管理系统 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima27.sutdentmanager" android:versionCode="1" android:versionNam

05_学生管理系统,xml读写,布局的综合应用

 最终要做的项目目标:   2.编写Android清单文件AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.itheima27.sutdentmanager"    

Android For JNI(四)——C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统

Android For JNI(四)--C的数组,指针长度,堆内存和栈内存,malloc,学生管理系统 好几天每写JNI了,现在任务也越来越重了,工作的强度有点高,还有好几个系列的博客要等着更新,几本书还嗷嗷待哺的等着我去看,github上的两个散漫的开源,基础入门的视频也在录制,还要学习新的知识, 都是一种挑战,不知道为何,最近懒散了,看来还得再加把劲,今天我们继续延伸一下C的一些小知识 一.数组 C的数组和JAVA也是类似的,我们写一段小程序 #include <stdio.h> #inc

基于XML-DOM技术的MIS系统(学生管理系统-精简版)

dom|xml (亿众国际-004)[原创]基于XML-DOM技术的MIS系统(学生管理系统-精简版) ///////////////////////////////////////////////////////////Author: stardicky                                    ////E-mail: stardicky@hotmail.com                        ////QQNumber: 9531511        

delphi做学生管理系统总结

在用刚刚学的delphi来做学生管理系统会遇到很多问题,这写问题或许是共性的,希望对大家有帮助 工程文件 界面 一.登录界面 二.主功能界面 用户管 理

java web-JAVA web +mySQL 学生管理系统

问题描述 JAVA web +mySQL 学生管理系统 界面做好后,数据库链接出现问题了怎样链接上数据库呢?..............初学者求教! 解决方案 用jdbc就可以了完整的程序下载:http://download.csdn.net/detail/zhouhuijun_vip/7523155 解决方案二: 简单点直接用jdbc...要么用mybatis... 解决方案三: http://www.cnblogs.com/taoweiji/archive/2012/12/11/281285

新手 c++学生管理系统 不知道怎么改错

问题描述 新手 c++学生管理系统 不知道怎么改错 #include "iostream" #include "string" #include "fstream" #include "conio.h" using namespace std; // *******建立学生信息的类 class Student { public: Student *Head,*p; Student *Next,*end; char name[2

c语言 数据结构-关于“学生管理系统”这个程序编程的一些问题

问题描述 关于"学生管理系统"这个程序编程的一些问题 #include #include typedef struct student { int num; int score; struct student *next; }student; void add(student *s)//全局的增加函数 { printf("请输入学生学号与分数:n"); scanf("%d %d",&s->num,&s->score);