适用于Android开发的简单聊天软件
适用于android开发。是一个简单的聊天软件,包括知识点,各个控件的运用(ExpandableListView,ViewPager,Spinner,LinearLayout,RelativeLayot),自定义的ViaImageView(自定义xml属性),sql的写入,读取等操作。
1.ViaImageView.java
packagecom.farina.farinaimagelib; importandroid.content.Context; importandroid.content.res.TypedArray; importandroid.graphics.Bitmap; importandroid.graphics.Canvas; importandroid.graphics.Color; importandroid.graphics.Paint; importandroid.graphics.Path; importandroid.graphics.PorterDuff; importandroid.graphics.PorterDuffXfermode; importandroid.graphics.RectF; importandroid.graphics.Xfermode; importandroid.graphics.drawable.Drawable; importandroid.graphics.drawable.NinePatchDrawable; importandroid.util.AttributeSet; importandroid.widget.ImageView; /** *CreatedbyFarinaZhangon2016/5/25. */ publicclassViaImageViewextendsImageView{ privateintshapeType=-1; privateintborderWidth=0;//theimage'sborderwidth privateintborderColor=Color.BLACK;//theimage'sbordercolor privatebooleanuseDefaultStyle=false;//drawacommonimageview privatestaticfinalXfermodeMASK_XFERMODE; privateintAnimType=-1;//动画类型 privateintmWidth;//图片的宽度 privateintmHeight;//图片的高度 static{ PorterDuff.ModelocalMode=PorterDuff.Mode.DST_IN; MASK_XFERMODE=newPorterDuffXfermode(localMode); } publicstaticenumShape{circle,triangle,star,hexagonal,rectangle}; publicViaImageView(Contextcontext){ super(context); init(context,null,0); } publicViaImageView(Contextcontext,AttributeSetattrs){ super(context,attrs); init(context,attrs,0); } publicViaImageView(Contextcontext,AttributeSetattrs,intdefStyle){ super(context,attrs,defStyle); init(context,attrs,defStyle); } publicvoidinit(Contextcontext,AttributeSetattrs,intdefStyle){ if(attrs!=null){ TypedArraya=getContext().obtainStyledAttributes( attrs,R.styleable.viaImage,defStyle,0); shapeType=(int)a.getInteger(R.styleable.viaImage_shapeType,shapeType); borderWidth=(int)a.getDimension(R.styleable.viaImage_borderWidth,borderWidth); borderColor=a.getColor(R.styleable.viaImage_borderColor,borderColor); a.recycle(); } } /** *外部接口 *设置ImageView的属性,包括形状,边框颜色,边框宽度 **/ publicvoidsetImageViewProperty(intshapeType,intwidth,intcolor){ this.shapeType=shapeType; this.borderWidth=width; this.borderColor=color; postInvalidate(); } publicvoidsetImageViewShape(intshapeType){ this.shapeType=shapeType; postInvalidate(); } publicvoidsetImageBorderWidth(intwidth){ this.borderWidth=width; postInvalidate(); } publicvoidsetImageBorderColor(intcolor){ this.borderColor=color; postInvalidate(); } /**外部接口 *设置是否以默认格式绘制,普通格式 */ publicvoidsetDrawCommonImage(booleanisCommon){ this.useDefaultStyle=isCommon; } @Override protectedvoidonDraw(Canvascanvas){ if(useDefaultStyle){ super.onDraw(canvas); return; } finalDrawablelocalDrawable=getDrawable(); if(localDrawable==null)return; if(localDrawableinstanceofNinePatchDrawable)return; mWidth=getWidth(); mHeight=getHeight(); intlayer=canvas.saveLayer(0.0f,0.0f,mWidth,mHeight,null,Canvas.ALL_SAVE_FLAG); localDrawable.setBounds(0,0,mWidth,mHeight); /*将drawable绑定到bitmap(this.mask)上面(drawable只能通过bitmap显示出来)*/ localDrawable.draw(canvas); createShapeBitmap(canvas); /*将画布复制到layer上*/ canvas.restoreToCount(layer); if(borderWidth!=0){ drawBorder(canvas); } } privatevoidcreateShapeBitmap(Canvascanvas){ Paintmypaint; mypaint=newPaint(); mypaint.setFilterBitmap(false); mypaint.setAntiAlias(true); mypaint.setXfermode(MASK_XFERMODE); Bitmap.ConfiglocalConfig=Bitmap.Config.ARGB_8888; BitmaplocalBitmap=Bitmap.createBitmap(mWidth,mHeight,localConfig); CanvaslocalCanvas=newCanvas(localBitmap); PaintlocalPaint=newPaint(); localPaint.setAntiAlias(true); intpadding=borderWidth; intradius=((mWidth>mHeight)?mHeight:mWidth)/2-padding; switch(shapeType){ case0://圆形; { localCanvas.drawCircle(mWidth/2,mHeight/2,radius,localPaint); break; } case1://三角形; { Pathpath=newPath(); path.moveTo(padding,padding); path.lineTo(mWidth/2,(float)(mWidth*Math.cos(degree2Radian(30))-padding)); path.lineTo(mWidth-padding,padding); path.close(); localCanvas.drawPath(path,localPaint); break; } case2://五角星形; { Pathpath=newPath(); floatradian=degree2Radian(36);//36为五角星的角度 floatradius_in=(float)(radius*Math.sin(radian/2)/Math .cos(radian));//中间五边形的半径 path.moveTo((float)(radius*Math.cos(radian/2)),0);//此点为多边形的起点 path.lineTo((float)(radius*Math.cos(radian/2)+radius_in *Math.sin(radian)), (float)(radius-radius*Math.sin(radian/2))); path.lineTo((float)(radius*Math.cos(radian/2)*2), (float)(radius-radius*Math.sin(radian/2))); path.lineTo((float)(radius*Math.cos(radian/2)+radius_in *Math.cos(radian/2)), (float)(radius+radius_in*Math.sin(radian/2))); path.lineTo( (float)(radius*Math.cos(radian/2)+radius *Math.sin(radian)),(float)(radius+radius *Math.cos(radian))); path.lineTo((float)(radius*Math.cos(radian/2)), (float)(radius+radius_in)); path.lineTo( (float)(radius*Math.cos(radian/2)-radius *Math.sin(radian)),(float)(radius+radius *Math.cos(radian))); path.lineTo((float)(radius*Math.cos(radian/2)-radius_in *Math.cos(radian/2)), (float)(radius+radius_in*Math.sin(radian/2))); path.lineTo(0,(float)(radius-radius*Math.sin(radian/2))); path.lineTo((float)(radius*Math.cos(radian/2)-radius_in *Math.sin(radian)), (float)(radius-radius*Math.sin(radian/2))); path.close();//使这些点构成封闭的多边形 localCanvas.drawPath(path,localPaint); break; } case3://正六边形; { Pathpath=newPath(); floatradian=degree2Radian(30); path.moveTo((float)(radius*Math.sin(radian)),0); path.lineTo((float)(radius*Math.sin(radian)+radius),0); path.lineTo((float)(2*radius),(float)(radius*Math.cos(radian))); path.lineTo((float)(radius*Math.sin(radian)+radius),(float)(2*(radius*Math.cos(radian)))); path.lineTo((float)(radius*Math.sin(radian)),(float)(2*(radius*Math.cos(radian)))); path.lineTo(0,(float)(radius*Math.cos(radian))); path.close(); localCanvas.drawPath(path,localPaint); break; } default://方形 { intrealWidth=(mWidth>mHeight)?mHeight:mWidth; intx=padding+(mWidth-realWidth)/2; inty=padding+(mHeight-realWidth)/2; RectFlocalRectF=newRectF(x,y,realWidth-padding*2,realWidth-padding*2); localCanvas.drawRect(localRectF,localPaint); break; } } /*将bitmap画到canvas上*/ canvas.drawBitmap(localBitmap,0.0f,0.0f,mypaint); } //画边框 privatevoiddrawBorder(Canvascanvas){ PaintlocalPaint=newPaint(); localPaint.setColor(borderColor); localPaint.setStyle(Paint.Style.STROKE); localPaint.setStrokeWidth(borderWidth); localPaint.setAntiAlias(true); intradius=((mWidth>mHeight)?mHeight:mWidth)/2-borderWidth/2; intpadding=borderWidth/2; switch(shapeType){ case0://圆形; { canvas.drawCircle(mWidth/2,mHeight/2,radius,localPaint); break; } case1://三角形; { Pathpath=newPath(); path.moveTo(padding,padding); path.lineTo(mWidth/2,(float)(mWidth*Math.cos(degree2Radian(30))-padding)); path.lineTo(mWidth-padding,padding); path.close(); canvas.drawPath(path,localPaint); break; } case2://五角星形; { Pathpath=newPath(); floatradian=degree2Radian(36);//36为五角星的角度 floatradius_in=(float)(radius*Math.sin(radian/2)/Math .cos(radian));//中间五边形的半径 path.moveTo((float)(radius*Math.cos(radian/2)),0);//此点为多边形的起点 path.lineTo((float)(radius*Math.cos(radian/2)+radius_in *Math.sin(radian)), (float)(radius-radius*Math.sin(radian/2))); path.lineTo((float)(radius*Math.cos(radian/2)*2), (float)(radius-radius*Math.sin(radian/2))); path.lineTo((float)(radius*Math.cos(radian/2)+radius_in *Math.cos(radian/2)), (float)(radius+radius_in*Math.sin(radian/2))); path.lineTo( (float)(radius*Math.cos(radian/2)+radius *Math.sin(radian)),(float)(radius+radius *Math.cos(radian))); path.lineTo((float)(radius*Math.cos(radian/2)), (float)(radius+radius_in)); path.lineTo( (float)(radius*Math.cos(radian/2)-radius *Math.sin(radian)),(float)(radius+radius *Math.cos(radian))); path.lineTo((float)(radius*Math.cos(radian/2)-radius_in *Math.cos(radian/2)), (float)(radius+radius_in*Math.sin(radian/2))); path.lineTo(0,(float)(radius-radius*Math.sin(radian/2))); path.lineTo((float)(radius*Math.cos(radian/2)-radius_in *Math.sin(radian)), (float)(radius-radius*Math.sin(radian/2))); path.close();//使这些点构成封闭的多边形 canvas.drawPath(path,localPaint); break; } case3://正六边形; { Pathpath=newPath(); floatradian=degree2Radian(30); path.moveTo((float)(radius*Math.sin(radian)),0); path.lineTo((float)(radius*Math.sin(radian)+radius),0); path.lineTo((float)(2*radius),(float)(radius*Math.cos(radian))); path.lineTo((float)(radius*Math.sin(radian)+radius),(float)(2*(radius*Math.cos(radian)))); path.lineTo((float)(radius*Math.sin(radian)),(float)(2*(radius*Math.cos(radian)))); path.lineTo(0,(float)(radius*Math.cos(radian))); path.close(); canvas.drawPath(path,localPaint); break; } default://方形 { intrealWidth=(mWidth>mHeight)?mHeight:mWidth-borderWidth; intx=padding+(mWidth-realWidth)/2; inty=padding+(mHeight-realWidth)/2; RectFlocalRectF=newRectF(x,y,realWidth-padding*2,realWidth-padding*2); canvas.drawRect(localRectF,localPaint); break; } } } //将角度转化为弧度 privatefloatdegree2Radian(intdegree){ //TODOAuto-generatedmethodstub return(float)(Math.PI*degree/180); } }
2.ContactExpendListAdapter.java
packagecom.farina.adapter; importandroid.content.Context; importandroid.view.LayoutInflater; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.BaseExpandableListAdapter; importandroid.widget.ImageView; importandroid.widget.TextView; importcom.farina.data.FriendEntity; importcom.farina.data.FriendListData; importcom.farina.farinaimagelib.ViaImageView; importcom.farina.libtest.R; importjava.util.List; /** *CreatedbyFarinaZhangon2016/7/5. */ publicclassContactExpendListAdapterextendsBaseExpandableListAdapter{ privateContextmContext; privateList<FriendListData>mListData; publicContactExpendListAdapter(Contextcontext,List<FriendListData>data){ mContext=context; mListData=data; } @Override publicintgetGroupCount(){ returnmListData.size(); } @Override publicintgetChildrenCount(intgroupPosition){ returnmListData.get(groupPosition).getFriendChildList().size(); } @Override publicObjectgetGroup(intgroupPosition){ returnmListData.get(groupPosition).getGroupName(); } @Override publicObjectgetChild(intgroupPosition,intchildPosition){ returnmListData.get(groupPosition).getFriendChildList().get(childPosition); } @Override publiclonggetGroupId(intgroupPosition){ returngroupPosition; } @Override publiclonggetChildId(intgroupPosition,intchildPosition){ returnchildPosition; } @Override publicViewgetGroupView(intgroupPosition,booleanisExpanded,ViewconvertView,ViewGroupparent){ groupHolderviewHolder=null; if(convertView==null){ convertView=LayoutInflater.from(mContext).inflate(R.layout.contact_list_group,null); viewHolder=newgroupHolder(); viewHolder.icon=(ImageView)convertView.findViewById(R.id.icon); viewHolder.groupName=(TextView)convertView.findViewById(R.id.goup_name); convertView.setTag(viewHolder); }else{ viewHolder=(groupHolder)convertView.getTag(); } viewHolder.groupName.setText(mListData.get(groupPosition).getGroupName()); if(isExpanded){ viewHolder.icon.setImageResource(R.mipmap.arrow_down); }else{ viewHolder.icon.setImageResource(R.mipmap.arrow_up); } returnconvertView; } @Override publicViewgetChildView(intgroupPosition,intchildPosition,booleanisLastChild, ViewconvertView,ViewGroupparent){ memberHolderviewHolder=null; if(convertView==null){ convertView=LayoutInflater.from(mContext).inflate(R.layout.contact_list_member,null); viewHolder=newmemberHolder(); viewHolder.memberImg=(ViaImageView)convertView.findViewById(R.id.member_img); viewHolder.memberName=(TextView)convertView.findViewById(R.id.member_name); convertView.setTag(viewHolder); }else{ viewHolder=(memberHolder)convertView.getTag(); } FriendEntityentity=mListData.get(groupPosition).getFriendChildList().get(childPosition); StringicnPath=entity.getIcnPath(); if(icnPath==null||icnPath.length()<=0){ viewHolder.memberImg.setImageDrawable(mContext.getResources().getDrawable(R.mipmap.user_img)); } viewHolder.memberName.setText(entity.getName()); returnconvertView; } @Override publicbooleanisChildSelectable(intgroupPosition, intchildPosition){ returntrue; } @Override publicbooleanhasStableIds(){ returntrue; } privateclassmemberHolder{ ViaImageViewmemberImg; TextViewmemberName; } privateclassgroupHolder{ ImageViewicon; TextViewgroupName; } }
3.ChatInfoManager.java
packagecom.farina.db; importandroid.content.ContentValues; importandroid.content.Context; importandroid.database.Cursor; importandroid.database.sqlite.SQLiteDatabase; importcom.farina.data.FriendEntity; importcom.farina.data.FriendListData; importcom.farina.data.GroupEntity; importcom.farina.data.MessageEntity; importcom.farina.data.UserEntity; importjava.util.ArrayList; importjava.util.List; /** *CreatedbyFarinaZhangon2016/7/14. */ publicclassChatInfoManager{ privateContextmContext; privateChatDBhelpermDBHelper; //tableuserstring privatefinalStringUSER_TABLE_NAME="users"; privatefinalStringUSER_ID="id"; privatefinalStringUSER_COUNT_NUMBER="countNumber"; privatefinalStringUSER_NIKENAME="nikeName"; privatefinalStringUSER_ICON_PATH="iconPath"; privatefinalStringUSER_PHONE_NUMBER="phoneNumber"; privatefinalStringUSER_MAIL_ADDR="mailAddr"; privatefinalStringUSER_QQ_NUMBER="qqNumber"; privatefinalStringUSER_WEIXIN_NUMBER="weixinNumber"; //tablefriendsstring privatefinalStringFRIEND_TABLE_NAME="friends"; privatefinalStringFRIEND_ID="id"; privatefinalStringFRIEND_HOST_ID="hostId"; privatefinalStringFRIEND_GROUP_ID="groupId"; privatefinalStringFRIEND_NAME="friendName"; privatefinalStringFRIEND_ICON_PATH="iconPath"; privatefinalStringFRIEND_BELIVE="beLive"; //tablegroupsstring privatefinalStringGROUP_TABLE_NAME="groups"; privatefinalStringGROUP_ID="id"; privatefinalStringGROUP_HOST_ID="hostId"; privatefinalStringGROUP_NAME="groupName"; //tablemessagesstring privatefinalStringMESSAGE_TABLE_NAME="messages"; privatefinalStringMESSAGE_ID="id"; privatefinalStringMESSAGE_MESSAGE="message"; privatefinalStringMESSAGE_FROM_ID="fromId"; privatefinalStringMESSAGE_TO_ID="toId"; privatefinalStringMESSAGE_READED="readed"; privatefinalStringMESSAGE_TYPE="type"; privatefinalStringMESSAGE_TIME="time"; publicChatInfoManager(Contextcontext){ mContext=context; mDBHelper=ChatDBhelper.getInstance(mContext); } publicvoidaddUser(UserEntityuser){ SQLiteDatabasedb=null; try{ db=mDBHelper.getWritableDatabase(); ContentValuesvalues=newContentValues(); values.put(USER_ID,user.getId()); values.put(USER_COUNT_NUMBER,user.getCountNumber()); values.put(USER_NIKENAME,user.getNikeName()); values.put(USER_ICON_PATH,user.getIconPath()); values.put(USER_PHONE_NUMBER,user.getPhoneNumber()); values.put(USER_MAIL_ADDR,user.getMailNumber()); values.put(USER_QQ_NUMBER,user.getQQNumber()); values.put(USER_WEIXIN_NUMBER,user.getWeixinNumber()); db.insert(USER_TABLE_NAME,null,values); }catch(Exceptione){ e.printStackTrace(); //TODO:handleexception }finally{ db.close(); } } publicUserEntitygetUserData(intindex){ UserEntityuser=newUserEntity(); SQLiteDatabasedb=null; Cursorcursor=null; try{ db=mDBHelper.getReadableDatabase(); cursor=db.query(USER_TABLE_NAME,null,USER_ID+"="+index,null,null,null,null); if(cursor!=null){ user.setId(index); user.setCountNumber(cursor.getString(cursor.getColumnIndex(USER_COUNT_NUMBER))); user.setNikeName(cursor.getString(cursor.getColumnIndex(USER_NIKENAME))); user.setIconPath(cursor.getString(cursor.getColumnIndex(USER_ICON_PATH))); user.setPhoneNumber(cursor.getString(cursor.getColumnIndex(USER_PHONE_NUMBER))); user.setMailNumber(cursor.getString(cursor.getColumnIndex(USER_MAIL_ADDR))); user.setQQNumber(cursor.getString(cursor.getColumnIndex(USER_QQ_NUMBER))); user.setWeixinNumber(cursor.getString(cursor.getColumnIndex(USER_WEIXIN_NUMBER))); }else{ returnnull; } }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } returnuser; } publicList<UserEntity>getUserList(){ List<UserEntity>list=newArrayList<UserEntity>(); SQLiteDatabasedb=null; Cursorcursor=null; try{ db=mDBHelper.getReadableDatabase(); cursor=db.query(USER_TABLE_NAME,newString[]{USER_ID,USER_COUNT_NUMBER,USER_NIKENAME,USER_ICON_PATH},null,null,null,null,null); if(cursor!=null){ while(cursor.moveToNext()){ UserEntityuser=newUserEntity(); user.setId(cursor.getInt(cursor.getColumnIndex(USER_ID))); user.setCountNumber(cursor.getString(cursor.getColumnIndex(USER_COUNT_NUMBER))); user.setNikeName(cursor.getString(cursor.getColumnIndex(USER_NIKENAME))); user.setIconPath(cursor.getString(cursor.getColumnIndex(USER_ICON_PATH))); list.add(user); } } }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } returnlist; } publicvoidaddFriend(FriendEntityfriend){ SQLiteDatabasedb=null; try{ db=mDBHelper.getWritableDatabase(); if(db==null)return; ContentValuesvalues=newContentValues(); values.put(FRIEND_ID,friend.getId()); values.put(FRIEND_HOST_ID,friend.getHostId()); values.put(FRIEND_GROUP_ID,friend.getgroupId()); values.put(FRIEND_NAME,friend.getName()); values.put(FRIEND_ICON_PATH,friend.getIcnPath()); values.put(FRIEND_BELIVE,friend.getBeLive()); db.insert(FRIEND_TABLE_NAME,null,values); }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } } publicList<FriendListData>getFriendList(){ SQLiteDatabasedb=null; List<FriendListData>friendList=newArrayList<FriendListData>(); List<GroupEntity>groupList=getGroupList(); try{ db=mDBHelper.getWritableDatabase(); if(db==null)returnnull; for(inti=0;i<groupList.size();i++){ FriendListDatafriendGroup=newFriendListData(); StringgroupName=groupList.get(i).getName(); friendGroup.setGroupName(groupName); List<FriendEntity>groupChild=newArrayList<FriendEntity>(); Cursorcursor=db.query(FRIEND_TABLE_NAME,null,GROUP_NAME+"="+groupName,null,null,FRIEND_ID+"ASC",null); while(cursor.moveToNext()){ FriendEntityentity=newFriendEntity(); entity.setId(cursor.getInt(cursor.getColumnIndex(FRIEND_ID))); entity.setgroupId(cursor.getInt(cursor.getColumnIndex(FRIEND_GROUP_ID))); entity.setHostId(cursor.getInt(cursor.getColumnIndex(FRIEND_HOST_ID))); entity.setName(cursor.getString(cursor.getColumnIndex(FRIEND_NAME))); entity.setIcnPath(cursor.getString(cursor.getColumnIndex(FRIEND_ICON_PATH))); StringbeLive=cursor.getString(cursor.getColumnIndex(FRIEND_BELIVE)); entity.setBeLive(beLive.equals("1")); groupChild.add(entity); } friendGroup.setFriendChildList(groupChild); friendList.add(friendGroup); } }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } returnfriendList; } publicList<GroupEntity>getGroupList(){ List<GroupEntity>groupList=null; SQLiteDatabasedb=null; try{ db=mDBHelper.getReadableDatabase(); Cursorcursor=db.query(GROUP_TABLE_NAME,null,null,null,null,null,null); while(cursor.moveToNext()){ GroupEntityentity=newGroupEntity(); entity.setId(cursor.getInt(cursor.getColumnIndex(GROUP_ID))); entity.setHostId(cursor.getInt(cursor.getColumnIndex(GROUP_HOST_ID))); entity.setGroupName(cursor.getString(cursor.getColumnIndex(GROUP_NAME))); groupList.add(entity); } }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } returngroupList; } publicvoidaddGroupMember(GroupEntitygroup){ SQLiteDatabasedb=null; try{ db=mDBHelper.getWritableDatabase(); ContentValuesvalues=newContentValues(); values.put(GROUP_ID,group.getId()); values.put(GROUP_HOST_ID,group.getHostId()); values.put(GROUP_NAME,group.getName()); db.insert(GROUP_TABLE_NAME,null,values); }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } } publicList<MessageEntity>getMessageList(StringloadId){ List<MessageEntity>list=newArrayList<MessageEntity>(); SQLiteDatabasedb=null; Cursorcursor=null; try{ db=mDBHelper.getReadableDatabase(); cursor=db.query(MESSAGE_TABLE_NAME,null, MESSAGE_FROM_ID+"=?,"+MESSAGE_TO_ID+"=?", newString[]{loadId}, null, loadId,MESSAGE_TIME+"DES",null); while(cursor.moveToNext()){ MessageEntityentity=newMessageEntity(); entity.setId(cursor.getInt(cursor.getColumnIndex(MESSAGE_ID))); entity.setFromId(cursor.getInt(cursor.getColumnIndex(MESSAGE_FROM_ID))); entity.setToId(cursor.getInt(cursor.getColumnIndex(MESSAGE_TO_ID))); entity.setMessageStr(cursor.getString(cursor.getColumnIndex(MESSAGE_MESSAGE))); entity.setType(cursor.getString(cursor.getColumnIndex(MESSAGE_TYPE))); entity.setTime(cursor.getString(cursor.getColumnIndex(MESSAGE_TIME))); list.add(entity); } }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } returnlist; } publicvoidsetMessageItem(MessageEntitymessage){ SQLiteDatabasedb=null; try{ db=mDBHelper.getWritableDatabase(); if(db==null)return; ContentValuesvalues=newContentValues(); values.put(MESSAGE_ID,message.getId()); values.put(MESSAGE_FROM_ID,message.getFromId()); values.put(MESSAGE_TO_ID,message.getToId()); values.put(MESSAGE_MESSAGE,message.getMessageStr()); values.put(MESSAGE_TYPE,message.getType()); values.put(MESSAGE_TIME,message.getTime()); db.insert(MESSAGE_TABLE_NAME,null,values); }catch(Exceptione){ e.printStackTrace(); }finally{ db.close(); } } }
源码下载地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。