Java 将RecyclerView与数据库一起使用
Contact类用于保存值Java 将RecyclerView与数据库一起使用,java,android,Java,Android,Contact类用于保存值 public class Contact { // id int mNumber; String mMonth,mDate, mDay, mTime , mTitle , mContent; int mMood,mWeather; public Contact(){} public Contact(int number, String month, String date, String day, String time, String title, Str
public class Contact {
// id
int mNumber;
String mMonth,mDate, mDay, mTime , mTitle , mContent;
int mMood,mWeather;
public Contact(){}
public Contact(int number, String month, String date, String day, String time, String title, String content, int weather, int mood) {
mNumber=number; mMonth=month; mDay = day; mDate = date ; mTime = time; mTitle = title; mContent = content; mWeather = weather; mMood =mood;
}
public Contact(String month, String date, String day, String time, String title, String content, int weather, int mood) {
mMonth=month; mDay = day; mDate = date ; mTime = time; mTitle = title; mContent = content; mWeather = weather; mMood =mood;
}
public Contact(String month, String date, String day, String time, String title, String content) {
mMonth=month; mDay = day; mDate = date ; mTime = time; mTitle = title; mContent = content;
}
public int getmNumber() {
return mNumber;
}
public void setmNumber(int mNumber) {
this.mNumber = mNumber;
}
public String getmMonth() {
return mMonth;
}
public void setmMonth(String mMonth) {
this.mMonth = mMonth;
}
public String getmDate() {
return mDate;
}
public void setmDate(String mDate) {
this.mDate = mDate;
}
public String getmDay() {
return mDay;
}
public void setmDay(String mDay) {
this.mDay = mDay;
}
public String getmTime() {
return mTime;
}
public void setmTime(String mTime) {
this.mTime = mTime;
}
public String getmTitle() {
return mTitle;
}
public void setmTitle(String mTitle) {
this.mTitle = mTitle;
}
public String getmContent() {
return mContent;
}
public void setmContent(String mContent) {
this.mContent = mContent;
}
public int getmMood() {
return mMood;
}
public void setmMood(int mMood) {
this.mMood = mMood;
}
public int getmWeather() {
return mWeather;
}
public void setmWeather(int mWeather) {
this.mWeather = mWeather;
}
}
public类DBHelper扩展了SQLiteOpenHelper{
公共静态最终字符串数据库\u NAME=“Calendar.db”;
//表名
公共静态最终字符串D_TABLE_NAME=“Diary”;
公共静态最终字符串D_COL_1=“m_Number”//id
公共静态最终字符串D_COL_2=“m_Title”;
公共静态最终字符串D_COL_3=“m_Content”;
公共静态最终字符串D_COL_4=“m_Month”;
公共静态最终字符串D_COL_5=“m_Date”;
公共静态最终字符串D_COL_6=“m_Day”;
公共静态最终字符串D_COL_7=“m_Time”;
公共静态最终字符串D_COL_8=“m_Mood”;//图像
公共静态最终字符串D_COL_9=“m_Weather”//image
公共DBHelper(上下文){
super(上下文,数据库名称,null,1);
}
@凌驾
public void onCreate(SQLiteDatabase db){
db.execSQL(“创建表格”+D_表格名称+”(“+D_列1+”整数主键自动递增,“+D_列2+”文本,“+D_列3+”文本,“+D_列4+”文本,”
+D_列5+“文本”、+D_列6+“文本”、+D_列7+“文本”、+D_列8+“整数”、+D_列9+“整数”);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
db.execSQL(“如果存在删除表”+表名称);
onCreate(db);
}
//插入新数据
公共联系人(联系人联系人){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues ContentValues=新ContentValues();
put(D_COL_2,contact.getmTitle());
contentValues.put(D_COL_3,contact.getmContent());
contentValues.put(D_COL_4,contact.getmonth());
contentValues.put(D_COL_5,contact.getmDate());
contentValues.put(D_COL_6,contact.getmDay());
contentValues.put(D_COL_7,contact.getmTime());
contentValues.put(D_COL_8,contact.getmMood());
put(D_COL_9,contact.getmWeather());
插入(D_TABLE_NAME,null,contentValues);
db.close();
} //
//n要联系的号码
公共联系人getContact(国际号码){
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(D_TABLE_NAME,新字符串[]{D_COL_1,D_COL_2,D_COL_3,D_COL_4,D_COL_5,
D列6、D列7、D列8、D列9、D列1+“=?”,
新字符串[]{String.valueOf(mNumber)},null,null,null,null);
如果(光标!=null)
cursor.moveToFirst();
Contact Contact=新联系人(Integer.parseInt(cursor.getString(0)),
cursor.getString(1)、cursor.getString(2)、cursor.getString(3)、cursor.getString(4)、cursor.getString(5)、cursor.getString(6),
Integer.parseInt(cursor.getString(7)),Integer.parseInt(cursor.getString(8));
回接;
}
//获取所有联系信息
公共列表getAllContacts(){
List contactList=new ArrayList();
//选择所有查询
String selectQuery=“SELECT*FROM”+D\u TABLE\u NAME;
SQLiteDatabase db=this.getWritableDatabase();
Cursor Cursor=db.rawQuery(selectQuery,null);
//循环遍历所有行并添加到列表
if(cursor.moveToFirst()){
做{
触点=新触点();
contact.setmNumber(Integer.parseInt(cursor.getString(0));
contact.setmTitle(cursor.getString(1));
setmContent(cursor.getString(2));
contact.setAmmonth(cursor.getString(3));
contact.setmDate(cursor.getString(4));
contact.setmDay(cursor.getString(5));
contact.setmTime(cursor.getString(6));
setmMood(Integer.parseInt(cursor.getString(7));
setmWeather(Integer.parseInt(cursor.getString(8));
//将联系人添加到列表中
联系人列表。添加(联系人);
}while(cursor.moveToNext());
}
//返回联系人列表
Log.d(“agent99”,contactList.get(0.getmTitle().toString());
返回联系人列表;
}
public int updateContact(联系人){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
put(D_COL_2,contact.getmTitle());
put(D_COL_3,contact.getmContent());
value.put(D_COL_4,contact.getAmmonth());
put(D_COL_5,contact.getmDate());
put(D_COL_6,contact.getmDay());
put(D_COL_7,contact.getmTime());
put(D_COL_8,contact.getmMood());
put(D_COL_9,contact.getmWeather());
//更新行
返回db.update(数据表名称、值、数据列1+“=?”,
新字符串[]{String.valueOf(contact.getmNumber())});
}
//联系信息删除
公共联系人(联系人){
SQLiteDatabase db=this.getWritableDatabase();
db.delete(数据表名称,数据列1+“=?”,
新字符串[]{String.valueOf(contact.getmNumber())});
db.close();
}
//联系信息号码
public int getcontactscont(){
String countQuery=“SELECT*FROM”+D_TABLE_NAME;
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.rawQuery(countQuery,null);
cursor.close();
//返回计数
返回cursor.getCount();
}
}
回收器适配器类数据管理器
public class DBHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Calendar.db";
//Table Name
public static final String D_TABLE_NAME = "Diary";
public static final String D_COL_1 = "m_Number"; //id
public static final String D_COL_2 = "m_Title";
public static final String D_COL_3 = "m_Content";
public static final String D_COL_4 = "m_Month";
public static final String D_COL_5 = "m_Date";
public static final String D_COL_6 = "m_Day";
public static final String D_COL_7 = "m_Time";
public static final String D_COL_8 = "m_Mood"; //image
public static final String D_COL_9 = "m_Weather"; //image
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+D_TABLE_NAME+"("+D_COL_1+" INTEGER PRIMARY KEY AUTOINCREMENT, "+D_COL_2+" TEXT, "+D_COL_3+" TEXT, "+D_COL_4+" TEXT, "
+D_COL_5+" TEXT, "+D_COL_6+" TEXT, "+D_COL_7+ " TEXT, "+D_COL_8+" INTEGER, "+D_COL_9+" INTEGER);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists"+TABLE_NAME);
onCreate(db);
}
//Insert new Data
public void addContact(Contact contact){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(D_COL_2,contact.getmTitle());
contentValues.put(D_COL_3,contact.getmContent());
contentValues.put(D_COL_4,contact.getmMonth());
contentValues.put(D_COL_5,contact.getmDate());
contentValues.put(D_COL_6,contact.getmDay());
contentValues.put(D_COL_7,contact.getmTime());
contentValues.put(D_COL_8,contact.getmMood());
contentValues.put(D_COL_9,contact.getmWeather());
db.insert(D_TABLE_NAME,null,contentValues);
db.close();
} //
// mNumber to get Contact
public Contact getContact(int mNumber) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(D_TABLE_NAME, new String[] { D_COL_1,D_COL_2,D_COL_3,D_COL_4,D_COL_5,
D_COL_6,D_COL_7,D_COL_8,D_COL_9 }, D_COL_1 + "=?",
new String[] { String.valueOf(mNumber) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5),cursor.getString(6),
Integer.parseInt(cursor.getString(7)),Integer.parseInt(cursor.getString(8)));
return contact;
}
// All Contact information get
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<Contact>();
// Select All Query
String selectQuery = "SELECT * FROM " + D_TABLE_NAME;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setmNumber(Integer.parseInt(cursor.getString(0)));
contact.setmTitle(cursor.getString(1));
contact.setmContent(cursor.getString(2));
contact.setmMonth(cursor.getString(3));
contact.setmDate(cursor.getString(4));
contact.setmDay(cursor.getString(5));
contact.setmTime(cursor.getString(6));
contact.setmMood(Integer.parseInt(cursor.getString(7)));
contact.setmWeather(Integer.parseInt(cursor.getString(8)));
// Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
// return contact list
Log.d("agent99", contactList.get(0).getmTitle().toString());
return contactList;
}
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(D_COL_2,contact.getmTitle());
values.put(D_COL_3,contact.getmContent());
values.put(D_COL_4,contact.getmMonth());
values.put(D_COL_5,contact.getmDate());
values.put(D_COL_6,contact.getmDay());
values.put(D_COL_7,contact.getmTime());
values.put(D_COL_8,contact.getmMood());
values.put(D_COL_9,contact.getmWeather());
// updating row
return db.update(D_TABLE_NAME, values, D_COL_1 + " = ?",
new String[] { String.valueOf(contact.getmNumber()) });
}
// Contact information delete
public void deleteContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(D_TABLE_NAME, D_COL_1 + " = ?",
new String[] { String.valueOf(contact.getmNumber()) });
db.close();
}
// Contact information number
public int getContactsCount() {
String countQuery = "SELECT * FROM " + D_TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();
// return count
return cursor.getCount();
}
}
导入android.content.Context;
导入android.content.Intent;
导入android.support.v4.widget.CursorAdapter;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入com.codbking.calendar.Contact;
导入com.codbking.calendar.DBHelper;
导入com.codbking.calendar.example.R;
导入java.util.List;
公共类DataManager扩展了RecyclerView.Adapter{
DBHelper-DBHelper;
游标适配器mCursorAdapter;
List contacts=dbHelper.getAllContacts();
公共静态类RecyclerView.ViewHolder扩展了RecyclerView.ViewHolder{
text查看mDate、mDay、mMonth、mTime、mTitle、mContent;
ImageView mMood,mWeather;
私人语境;
RecyclerViewWholder(最终视图项视图){
超级(第六项)
import android.content.Context;
import android.content.Intent;
import android.support.v4.widget.CursorAdapter;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.codbking.calendar.Contact;
import com.codbking.calendar.DBHelper;
import com.codbking.calendar.exaple.R;
import java.util.List;
public class DataManager extends RecyclerView.Adapter<DataManager.RecyclerViewHolder> {
DBHelper dbHelper;
CursorAdapter mCursorAdapter;
List<Contact> contacts = dbHelper.getAllContacts();
public static class RecyclerViewHolder extends RecyclerView.ViewHolder {
TextView mDate, mDay, mMonth, mTime, mTitle, mContent;
ImageView mMood, mWeather;
private Context context;
RecyclerViewHolder(final View itemView) {
super(itemView);
context = itemView.getContext();
mDate = (TextView) itemView.findViewById(R.id.TV_entries_item_date);
mDay = (TextView) itemView.findViewById(R.id.TV_entries_item_day);
mMonth = (TextView) itemView.findViewById(R.id.TV_entries_item_header);
mTime = (TextView) itemView.findViewById(R.id.TV_entries_item_time);
mTitle = (TextView) itemView.findViewById(R.id.TV_entries_item_title);
mContent = (TextView) itemView.findViewById(R.id.TV_entries_item_summary);
mMood = (ImageView) itemView.findViewById(R.id.IV_entries_item_weather);
mWeather = (ImageView) itemView.findViewById(R.id.IV_entries_item_mood);
itemView.setClickable(true);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), MainActivity.class);
context.startActivity(myIntent);
}
});
}
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.entries, viewGroup, false);
return new RecyclerViewHolder(v);
}
@Override
public void onBindViewHolder(RecyclerViewHolder viewHolder, int i) {
// get the single element from the main array
for (Contact cn : contacts) {
viewHolder.mDate.setText(cn.getmDate());
viewHolder.mDay.setText(cn.getmDay());
viewHolder.mMonth.setText(cn.getmMonth());
viewHolder.mTime.setText(cn.getmTime());
viewHolder.mTitle.setText(cn.getmTitle());
viewHolder.mContent.setText(cn.getmContent());
viewHolder.mMood.setImageResource(cn.getmMood());
viewHolder.mWeather.setImageResource(cn.getmWeather());
}
}
@Override
public int getItemCount(){
return contacts.size();
}
}
@Override
public void onBindViewHolder(RecyclerViewHolder viewHolder, int i) {
// get the single element from the main array
Contact cn = contact.get(i);
viewHolder.mDate.setText(cn.getmDate());
viewHolder.mDay.setText(cn.getmDay());
viewHolder.mMonth.setText(cn.getmMonth());
viewHolder.mTime.setText(cn.getmTime());
viewHolder.mTitle.setText(cn.getmTitle());
viewHolder.mContent.setText(cn.getmContent());
viewHolder.mTitle.setText(cn.getmTitle());
viewHolder.mContent.setText(cn.getmContent());
viewHolder.mMood.setImageResource(cn.getmMood());
viewHolder.mWeather.setImageResource(cn.getmWeather());
}
@Override
public void onBindViewHolder(RecyclerViewHolder viewHolder, int i) {
Contact cn = contact.get(i);
if (cn != null){
viewHolder.mDate.setText(cn.getmDate());
viewHolder.mDay.setText(cn.getmDay());
viewHolder.mMonth.setText(cn.getmMonth());
viewHolder.mTime.setText(cn.getmTime());
viewHolder.mTitle.setText(cn.getmTitle());
viewHolder.mContent.setText(cn.getmContent());
viewHolder.mTitle.setText(cn.getmTitle());
viewHolder.mContent.setText(cn.getmContent());
viewHolder.mMood.setImageResource(cn.getmMood());
viewHolder.mWeather.setImageResource(cn.getmWeather());
}
}