日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2024/9/27 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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:versionCode="1"

    ??? android:versionName="1.0" >

    ?

    ??? <uses-sdk

    ??????? android:minSdkVersion="8"

    ??????? android:targetSdkVersion="19" />

    ??? <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" >

    ??????????? <intent-filter>

    ??????????????? <action android:name="android.intent.action.MAIN" />

    ?

    ??????????????? <category android:name="android.intent.category.LAUNCHER" />

    ??????????? </intent-filter>

    ??????? </activity>

    ??? </application>

    ?

    </manifest>

    3 編寫布局文件activity_main.xml????????????????????????

    <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>

    4 編寫Student實體

    package com.itheima27.sutdentmanager.entities;

    ?

    public class Student {

    ??? private String name;

    ??? private String sex;

    ??? private Integer age;

    ?

    ??? public Student() {

    ?????? super();

    ??? }

    ??? public Student(String name, String sex, Integer age) {

    ?????? super();

    ?????? this.name = name;

    ?????? this.sex = sex;

    ?????? this.age = age;

    ??? }

    ??? 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 + "]";

    ??? }

    }

    5 編寫MainActivity

    package com.itheima27.sutdentmanager;

    ?

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.util.ArrayList;

    import java.util.List;

    ?

    import org.xmlpull.v1.XmlPullParser;

    import org.xmlpull.v1.XmlSerializer;

    ?

    import android.graphics.Color;

    import android.os.Bundle;

    import android.os.Environment;

    import android.support.v7.app.ActionBarActivity;

    import android.text.TextUtils;

    import android.util.Xml;

    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;

    ?

    import com.itheima27.sutdentmanager.entities.Student;

    ?

    public class MainActivity extends ActionBarActivity 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";

    ??? }

    ?

    ??? public void onClick(View v) {

    ?????? switch (v.getId()) {

    ?????? case R.id.btn_save:

    ?????????? if(studentList.size() > 0) {

    ????????????? //將信息寫到xml文件中

    ????????????? 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;

    ?????? }

    ??? }

    ???

    ??? /**

    ??? ?* xml中讀出Student數據

    ??? ?* @return

    ??? ?*/

    ??? 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;

    ??? }

    ???

    ??? /**

    ??? ?* 恢復studentList列表

    ??? ?*/

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

    ?????? }

    ??? }

    }

    ?

    總結

    以上是生活随笔為你收集整理的05_学生管理系统,xml读写,布局的综合应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。