欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安卓开发-学生信息管理系统(刷新UI)

程序员文章站 2022-05-13 20:24:10
...

重点功能:

  1. 数据库增删改查优化
  2. Listview使用

界面效果:

安卓开发-学生信息管理系统(刷新UI)

目录结构:

安卓开发-学生信息管理系统(刷新UI)

一:数据库增删改查优化

        之前的查询为根据name判断是否存在sex为依据来判断该用户是否存在,因为sex为必选项,不能为空

        更新:查询所有的用户信息并显示

        在StudentDAO中添加查询所有用户信息的方法:

public List<Student> findAll(){
        List<Student> students=new ArrayList<Student>();
        SQLiteDatabase db=studentOpenHelper.getWritableDatabase();
        Cursor cursor=db.rawQuery("select name,number,sex from students",null);
        while(cursor.moveToNext()){
            String name=cursor.getString(0);
            String number=cursor.getString(1);
            String sex=cursor.getString(2);
            Student student=new Student();
            student.setName(name);
            student.setNumber(number);
            student.setSex(sex);
            students.add(student);
        }
        cursor.close();
        db.close();
        return students;
    }

    返回一个student列表,需要新建一个student类来保存数据:

class Student {
    public String getName() {
        return name;
    }
    public String getNumber() {
        return number;
    }
    public String getSex() {
        return sex;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", number='" + number + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
    private String name;
    private String number;
    private String sex;
}

二:Listview的使用

  • 在MainActivity中设置Listview容器来接受xml文件,
    <ListView
            android:id="@+id/lv"
            android:layout_width="match_parent"
           android:layout_height="match_parent">
        </ListView>
  • app打开的时候需要将数据显示到界面上

    新建一个xml布局文件来保存接受到的数据:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:layout_gravity="center_horizontal">


    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAlignment="center"
        android:id="@+id/tv_name"
        android:text="1a"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAlignment="center"
        android:id="@+id/tv_number"
        android:text="1a"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textAlignment="center"
        android:id="@+id/tv_sex"
        android:text="1a"/>
</LinearLayout>
  •     设置Listview适配器,使用inflact方法将xml文件填充到listview中

public class Myadapter extends BaseAdapter{

    @Override
    public int getCount() {
        return students.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View newview=null;
        if (view==null){
            newview=View.inflate(MainActivity.this,R.layout.result,null);
        }else{
            newview=view;
        }
        TextView tv_name=newview.findViewById(R.id.tv_name);
        TextView tv_number=newview.findViewById(R.id.tv_number);
        TextView tv_sex=newview.findViewById(R.id.tv_sex);
        tv_name.setText(students.get(i).getName().toString());
        tv_number.setText(students.get(i).getNumber().toString());
        tv_sex.setText(students.get(i).getSex().toString());
        return newview;
    }
}

  • 封装到refreshdata方法中,在app初始化时调用:
public void refreshdata(){
        students=studentDAO.findAll();
        if(adpter==null){
            adpter=new Myadapter();
        }else{
            Toast.makeText(this,"jjjjjjjj",0).show();
            adpter.notifyDataSetChanged();
        }
        lv.setAdapter(adpter);
    }
安卓开发-学生信息管理系统(刷新UI)

封装好的方法功能:刷新UI界面,先将数据库中的数据取出来放到xml中,在mainactivity中设置listview的适配器,将结果填充到listview当中