总结public voID onItemClick(AdapterVIEw<?> arg0,VIEw vIEw,int position, long ID) {Intent intent= new Intent(StudentsManagerActivity.this,sql.yxy.DetailActivity.class); intent.putExtra("cmd",0); //0代表查询学生,1代表添加学生 intent.putExtra("ID",contactsID[position]); startActivity(intent);
触发器为ListVIEw的Item的单机触发器,其实也可以使用选择触发器,下面还要说一说主界面用到的ListVIEw:BaseAdapter myAdapter = new BaseAdapter(){ @OverrIDe public int getCount() { if(contactsname != null){ //如果姓名数组不为空 return contactsname.length; } else { return 0; //如果姓名数组为空则返回0 } } @OverrIDe public Object getItem(int arg0) { return null; } @OverrIDe public long getItemID(int arg0) { return 0; } @OverrIDe public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { linearLayout ll = new linearLayout(StudentsManagerActivity.this); ll.setorIEntation(linearLayout.HORIZONTAL); TextVIEw tv = new TextVIEw(StudentsManagerActivity.this); tv.setText(contactsname[position]); tv.setTextSize(32); tv.setTextcolor(color.GREEN); tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); tv.setGravity(Gravity.CENTER_VERTICAL); TextVIEw tv2 = new TextVIEw(StudentsManagerActivity.this); tv2.setText("["+contactsNo[position]+"]"); tv2.setTextSize(28); tv2.setTextcolor(color.RED); tv2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); tv2.setGravity(Gravity.BottOM|Gravity.RIGHT); //设置TextVIEw控件在父容器中的位置 ll.addVIEw(tv); ll.addVIEw(tv2); return ll; } };
为了能够动态生成列表的内容,要为ListVIEw准备内容适配器,并且需要重写适配器的几个方法,最主要的是getVIEw方法,这里面定义了每个Item的布局,和XML文件不同,这里面用到的是XML属性对应的各种方法,这时感觉像是写JAVA。。。
还有一个值得注意的地方就是对数据库进行 *** 作后主界面内容要更新:protected voID onResume() { getBasicInfo(myHelper); myAdapter.notifyDataSetChanged(); super.onResume(); }
重写Activity的onResume()方法,你懂得。。。getBasicInfo()是自己定义的方法,notifyDataSetChanged()这个方法可以参考:http://blog.csdn.net/l_serein/article/details/6384969//方法:获取所有学生的姓名 public voID getBasicInfo(MyOpenHelper helper){ sqliteDatabase db = helper.getWritableDatabase(); //获取数据库连接 Cursor c = db.query(table_name,new String[]{ID,name,NO},null,ID); int idindex = c.getColumnIndex(ID); int nameIndex = c.getColumnIndex(name); //获得姓名列的列号 int phoneIndex = c.getColumnIndex(NO); //获得电话列的序号 contactsname = new String[c.getCount()]; //创建存放姓名的String数组对象 contactsID = new int[c.getCount()]; //创建存放ID的int数组对象 contactsNo = new String[c.getCount()]; //创建存放的数组对象 int i=0; //声明一个计数器 for(c.movetoFirst();!(c.isAfterLast());c.movetoNext()){ contactsname[i] = c.getString(nameIndex); //将姓名添加到String数组中 contactsID[i] = c.getInt(idindex); contactsNo[i] = c.getString(phoneIndex); //将固定电话添加到String数组中 i++; } c.close(); //关闭Cursor对象 db.close(); //关闭sqliteDatabase对象 }
总之这个程序有两个Activity,一个主界面一个显示学生信息,还有一个MyOpenHelper类继承于sqliteOpenHelper类,还用到了菜单、滚动条、Imagebutton等控件。。。
以上是内存溢出为你收集整理的学生管理系统-基于SQLite数据库的Android应用全部内容,希望文章能够帮你解决学生管理系统-基于SQLite数据库的Android应用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)