Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現學生管理系統

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(); 
    } 
  } 
} 

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

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved