如何使用适配器与listview把数据库内容显示出来?

qq_34120063 2017-10-31 11:28:41
package com.xushouwei.db;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.xushouwei.adapter.PersonAdapter;
import com.xushouwei.domain.Person;
import com.xushouwei.service.PersonService;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
private ListView listView=null;
private PersonService personService;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
personService=new PersonService(this);
listView=(ListView) this.findViewById(R.id.listView);
//相应条目的点击事件
listView.setOnItemClickListener(new ItemClickListener());
//添加一个显示数据的方法
show3();
}

private final class ItemClickListener implements OnItemClickListener
{

//AdapterView<?> arg0该参数代表当前你点击所在的ListView,View arg1代表点击的view,int position表示当前你点击的条目中的数据在集合中的索引值
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
ListView lView=(ListView) parent;
Person person=(Person) lView.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), person.getId().toString(), 1).show();

/*Cursor cursor=(Cursor) lView.getItemAtPosition(position);
int personid=cursor.getInt(cursor.getColumnIndex("_id"));
Toast.makeText(getApplicationContext(), personid+"", 1).show();*/

}

}
//自定义适配器
private void show3() {
List<Person> persons=personService.getScrollData(0, 20);
// TODO Auto-generated method stub
PersonAdapter adapter=new PersonAdapter(this, persons, R.layout.item);
listView.setAdapter(adapter);
}

private void show2() {
// TODO Auto-generated method stub
Cursor cursor=personService.getCursorScrollData(0, 20);
SimpleCursorAdapter adapter=new SimpleCursorAdapter(this, R.layout.item, cursor,new String[]{"name","phone","amount"}, new int[]{R.id.name,R.id.phone,R.id.amount});
listView.setAdapter(adapter);
}

private void show() {
// TODO Auto-generated method stub
List<Person> persons=personService.getScrollData(0, 20);
List<HashMap<String,Object>> data=new ArrayList<HashMap<String,Object>>();
for(Person person:persons)
{
HashMap<String,Object> item=new HashMap<String,Object>();
item.put("personid", person.getId());
item.put("name", person.getName());
item.put("phone", person.getPhone());
item.put("amount", person.getAmount());
data.add(item);
}
//使用适配器实现数据与界面条目的绑定
SimpleAdapter adapter=new SimpleAdapter(this, data, R.layout.item, new String[]{"name","phone","amount"}, new int[]{R.id.name,R.id.phone,R.id.amount});
listView.setAdapter(adapter);
/*{
//用getCount方法得到数据的总数
int total=adapter.getCount();
int perpage=7;
for(int i=0;i<perpage;i++)
{
View view=adapter.getView(i, convertView, parent);
//显示条目
}
}*/
}
}
...全文
453 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
YXTS122 2017-11-02
  • 打赏
  • 举报
回复
能把你的这个项目发到我的邮箱1444089871@qq.com我看看 。。。
Jing丶無雙 2017-11-01
  • 打赏
  • 举报
回复
在你onCreate()里调用show()方法,因此你得确保show()方法中data是有数据的,而这些数据则是来自你的数据库

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧