学生管理系统-基于SQLite数据库的Android应用

      • 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, null, null, 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等控件。。。




                                • 0
                                  点赞
                                • 2
                                  收藏
                                  觉得还不错? 一键收藏
                                • 0
                                  评论
                                评论
                                添加红包

                                请填写红包祝福语或标题

                                红包个数最小为10个

                                红包金额最低5元

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

                                抵扣说明:

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

                                余额充值