android使用map集合将数据库里的数据显示在ListView上

基本效果图:
在这里插入图片描述
首先要有两个xml文件(一个xml是用来显示数据库中的数据,另一个xml是用来定义listview中item的布局),一个activity:
直接上代码:
activity_main.xml:

<ListView
    android1:id="@+id/slv1"
    android1:layout_width="match_parent"
    android1:layout_height="360dp"
    android1:layout_below="@+id/searchView1"
    android1:layout_centerHorizontal="true"
    android1:layout_marginTop="38dp" >
</ListView>

<SearchView
    android1:id="@+id/searchView1"
    android1:layout_width="270sp"
    android1:layout_height="40sp"
    android:queryHint="请输入学生姓名"
    android:iconifiedByDefault="false"
    android1:layout_alignParentTop="true"
    android1:layout_centerHorizontal="true"
    android1:layout_marginTop="24dp"
    android1:background="@drawable/kuang" >
</SearchView>

<TextView
    android1:id="@+id/textView1"
    android1:layout_width="wrap_content"
    android1:layout_height="wrap_content"
    android1:layout_alignLeft="@+id/slv1"
    android1:layout_below="@+id/searchView1"
    android1:layout_marginLeft="17dp"
    android1:layout_marginTop="15dp"
    android1:text="总人数:" />

<TextView
    android1:id="@+id/stv1"
    android1:layout_width="wrap_content"
    android1:layout_height="wrap_content"
    android1:layout_alignBaseline="@+id/textView1"
    android1:layout_alignBottom="@+id/textView1"
    android1:layout_toRightOf="@+id/textView1"
    android1:text="TextView" />

listview.xml:

<TextView
    android:id="@+id/itv2"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/itv1"
    android:layout_alignBottom="@+id/itv1"
    android:layout_toRightOf="@+id/textView3"
    android:text="TextView" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView2"
    android:layout_alignBottom="@+id/textView2"
    android:layout_alignLeft="@+id/textView3"
    android:text="绩点:"
    android:textSize="15sp" />

<TextView
    android:id="@+id/itv4"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView4"
    android:layout_alignBottom="@+id/textView4"
    android:layout_toRightOf="@+id/textView4"
    android:text="textview" />

<TextView
    android:id="@+id/itv3"
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView2"
    android:layout_alignBottom="@+id/textView2"
    android:layout_toLeftOf="@+id/textView3"
    android:text="TextView" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="10dp"
    android:text="学号:"
    android:textSize="15sp" />

<TextView
    android:id="@+id/itv1"
    android:layout_width="60dp"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/textView1"
    android:text="TextView" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="姓名:"
    android:textSize="15sp" />

MainActivity.java(主要代码):

    lv=(ListView) findViewById(R.id.slv1);
	tv=(TextView) findViewById(R.id.stv1);
   db	connection=new db();
   SQLiteDatabase db1;
   db1=connection.getConnection();
   Cursor rs=db1.rawQuery("select * from grade order by grade desc", null);
	List<Map<String,String>>  datas= new ArrayList<Map<String,String>>();
	int i=0;
	//下面是关键代码
	while(rs.moveToNext()){
		Map<String,String> data=new HashMap<String,String>();
		data.put("id1", rs.getString(rs.getColumnIndex("id")));
		data.put("name1",rs.getString(rs.getColumnIndex("name")));
		data.put("subject1",rs.getString(rs.getColumnIndex("subject")));
		data.put("grade1", rs.getString(rs.getColumnIndex("grade")));
		datas.add(data);
		i++;
	}
	String s=""+i;//总人数
	tv.setText(s);
	 a=new SimpleAdapter(this,
			datas, R.layout.info, 
			new String[]{"name1","id1","subject1","grade1"}, 
			new int[]{R.id.itv1,R.id.itv3,R.id.itv2,R.id.itv4});
	lv.setAdapter(a);
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将数据库中的数据显示ListView上,你需要以下步骤: 1. 首先,你需要连接到你的数据库。你可以使用Android的SQLiteOpenHelper类来打开数据库。 2. 从数据库中查询数据。你可以使用SQLiteDatabase类来执行查询操作。 3. 将查询结果转换为一个列表对象。你可以使用Cursor对象来遍历查询结果并将数据添加到列表中。 4. 创建一个ListView对象并设置适配器。你可以使用ArrayAdapter或CursorAdapter类来创建适配器。 5. 将列表对象设置为适配器的数据源。你可以使用setAdapter()方法将列表对象设置为适配器的数据源。 以下是一个示例代码,它演示了如何将数据库中的数据显示ListView上: ``` java // 创建一个SQLiteOpenHelper对象,用于打开数据库 MyDatabaseHelper dbHelper = new MyDatabaseHelper(this); SQLiteDatabase db = dbHelper.getReadableDatabase(); // 查询数据库 Cursor cursor = db.query("my_table", null, null, null, null, null, null); // 将查询结果转换为一个列表对象 List<String> list = new ArrayList<>(); while (cursor.moveToNext()) { String data = cursor.getString(cursor.getColumnIndex("data")); list.add(data); } // 创建一个ListView对象并设置适配器 ListView listView = findViewById(R.id.list_view); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list); listView.setAdapter(adapter); // 关闭数据库连接和游标对象 cursor.close(); db.close(); ``` 注意,这只是一个简单的示例代码。在实际应用中,你需要根据你的具体需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值