适用于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();
}
}
}
源码下载地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。