Android實現學生管理系統_Android

來源:互聯網
上載者:User

本文執行個體為大家分享了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();     }   } } 

以上就是本文的全部內容,希望對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.