网站首页 > Android软件开发

Android 读取SQLite数据库(5)



  * 注意 列名 必须指定为_id 如果你的数据的主键id 不是以_id命名 必须在查询的时候 指定 别名为_id 否则会报异常信息

  */

  // SimpleCursorAdapter ada = new SimpleCursorAdapter(this, R.layout.person, cursor,

  // new String[]{"_id", "name", "age"}, new int[]{R.id.personid, R.id.name, R.id.age});

  //绑定适配器

  // listview.setAdapter(ada);

  }

  }

  package it.date;

  import it.bean.Person;

  import it.service.PersonService;

  import java.util.ArrayList;

  import java.util.HashMap;

  import java.util.List;

  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 DataActivity extends Activity {

  private static final String TAG="DataActivity";

  private ListView listview;

  private PersonService personservice;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  //获取ListView

  listview=(ListView)this.findViewById(R.id.listview);

  //获取数据库德数据

  personservice=new PersonService(this);

  /**

  *方法一 SimpleAdapter 适配器 绑定的参数数据是list对象 比较?嗦

  */

  List persons=personservice.getdatePerson(9, 20);

  //绑定数据 设置适配器

  List> list=new ArrayList>();

  /**

  * 适配器有 ArrayAdapter T 可以是String Integer

  * SimpleAdapter,SimpleCursorAdapter

  */

  HashMap hs=new HashMap();

  hs.put("personid", "编号");

  hs.put("name", "名称");

  hs.put("age", "年龄");

  list.add(hs);

  for(Person person:persons){

  HashMap map=new HashMap();

  map.put("personid", String.valueOf(person.getPersonId()));

  map.put("name", person.getName());
/**

  * 参数一 上下文信息

  * 参数二 加载的视图界面文件

  * 参数三 游标数据

  * 参数四 数据目录

  * 参数五 对应的数据值对应的id

  * 表示把参数五对应的字段 参数四绑定起来

  * 注意 列名 必须指定为_id 如果你的数据的主键id 不是以_id命名 必须在查询的时候 指定 别名为_id 否则会报异常信息

  */

  // SimpleCursorAdapter ada = new SimpleCursorAdapter(this, R.layout.person, cursor,

  // new String[]{"_id", "name", "age"}, new int[]{R.id.personid, R.id.name, R.id.age});

  //绑定适配器

  // listview.setAdapter(ada);

  }

  }

  ok 到这里就全部结束了 大家只要看懂了源代码 就完全明白了sqlite这种嵌入式的sql了





  map.put("age", String.valueOf(person.getAge()));

  list.add(map);

  }

  /**

  * 定义一个适配器 参数一 上下文信息 当前的上下文信息 是当前的类

  * 参数二 加载的值

  * 参数三 加载的视图界面文件

* 参数四 加载的目录 这个目录 是根据键值去取的值 在上面已经设置好了这个键值对

  * 参数五 加载的数据对应的属性

  */

  SimpleAdapter adapter=new SimpleAdapter(DataActivity.this, list, R.layout.person,new String[]{"personid",

  "name","age"}, new int[]{R.id.personid,R.id.name,R.id.age});

  //给这个ListView设置初始的适配器

  listview.setAdapter(adapter);

  // 为ListView添加事件

  listview.setOnItemClickListener(new OnItemClickListener() {

  /**

  * 参数一 表示 点击的 listview

  * 参数二 表示点击的最外层的那个元素

  * 说明 int position, long id 是所在行的id

  */

  @Override

  public void onItemClick(AdapterView parent, View view,

  int position, long id) {

  ListView listView = (ListView)parent;

  //获取所在行的数据 position和id都表示选择的item数据

  HashMap itemData = (HashMap)listView.getItemAtPosition(position);

  String personid = itemData.get("personid");

  String name = itemData.get("name");

  String age = itemData.get("age");

  //输出 01-17 14:54:47.919: INFO/DataActivity(9280):

  //className=android.widget.RelativeLayout

  Log.i(TAG, "className="+ view.getClass().getName());

  Log.i(TAG, "personid="+ personid+ "name="+name + "age"+ age);

  Log.i(TAG, "result="+ (position==id)); //trues

  Log.i(TAG, "id="+id);

  Log.i("TAG", "position="+position);

  Toast.makeText(DataActivity.this, name.toString(),

  1).show();

  }

  });

  /**

  * 方法二 获取 值

  * 推荐使用方法二去设置适配器 获取数据的值 这样会更合理

  * 绑定的数据是游标形式 但是主键id 必须以_id命名 如果不是 可以在查询数据的时候设置别名 并且绑定的参数必须是_id

  * 否则会报异常信息

  */

  // Cursor cursor = personservice.getdateRawPerson(0, 10);

发表评论

验证码: 点击验证码
  • 手机软件开发
    专业手机软件开发|手机客户端开发
    j2me手机软件开发|Android开发
  • 手机游戏开发
    手机游戏开发|symbian游戏开发
    Android开发|j2me手机游戏开发
  • windows phone开发
    windows phone软件开发,windows phone游戏开发
  • Android开发
    Android手机软件开发,Android游戏开发,android 软件开发
  • symbian开发
    symbian手机软件开发,symbian游戏开发,塞班手机软件开发

信息化系统集成

定制解决方案

手机软件定制