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

重点功能:

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

界面效果:


目录结构:


一:数据库增删改查优化

        之前的查询为根据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界面,先将数据库中的数据取出来放到xml中,在mainactivity中设置listview的适配器,将结果填充到listview当中
        

猜你喜欢

转载自blog.csdn.net/hhyihquk1/article/details/80505250