parent
c26308db5d
commit
df4434b386
@ -0,0 +1,61 @@
|
||||
package com.example.noteapp281;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
import com.example.noteapp281.bean.Note;
|
||||
import com.example.noteapp281.util.ToastUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class AddActivity extends AppCompatActivity {
|
||||
|
||||
private EditText etTitle,etContent;
|
||||
|
||||
private NoteDbOpenHelper mNoteDbOpenHelper;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_add);
|
||||
|
||||
etTitle = findViewById(R.id.et_title);
|
||||
etContent = findViewById(R.id.et_content);
|
||||
mNoteDbOpenHelper = new NoteDbOpenHelper(this);
|
||||
|
||||
}
|
||||
|
||||
public void add(View view) {
|
||||
String title = etTitle.getText().toString();
|
||||
String content = etContent.getText().toString();
|
||||
if (TextUtils.isEmpty(title)) {
|
||||
ToastUtil.toastShort(this, "标题不能为空!");
|
||||
return;
|
||||
}
|
||||
|
||||
Note note = new Note();
|
||||
|
||||
note.setTitle(title);
|
||||
note.setContent(content);
|
||||
note.setCreatedTime(getCurrentTimeFormat());
|
||||
long row = mNoteDbOpenHelper.insertData(note);
|
||||
if (row != -1) {
|
||||
ToastUtil.toastShort(this,"添加成功!");
|
||||
this.finish();
|
||||
}else {
|
||||
ToastUtil.toastShort(this,"添加失败!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String getCurrentTimeFormat() {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd HH:mm:ss");
|
||||
Date date = new Date();
|
||||
return simpleDateFormat.format(date);
|
||||
}
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
package com.example.noteapp281;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
import com.example.noteapp281.bean.Note;
|
||||
import com.example.noteapp281.util.ToastUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
public class EditActivity extends AppCompatActivity {
|
||||
|
||||
private Note note;
|
||||
private EditText etTitle,etContent;
|
||||
|
||||
private NoteDbOpenHelper mNoteDbOpenHelper;
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_edit);
|
||||
|
||||
etTitle = findViewById(R.id.et_title);
|
||||
etContent = findViewById(R.id.et_content);
|
||||
|
||||
initData();
|
||||
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
Intent intent = getIntent();
|
||||
note = (Note) intent.getSerializableExtra("note");
|
||||
if (note != null) {
|
||||
etTitle.setText(note.getTitle());
|
||||
etContent.setText(note.getContent());
|
||||
}
|
||||
mNoteDbOpenHelper = new NoteDbOpenHelper(this);
|
||||
}
|
||||
|
||||
public void save(View view) {
|
||||
String title = etTitle.getText().toString();
|
||||
String content = etContent.getText().toString();
|
||||
if (TextUtils.isEmpty(title)) {
|
||||
ToastUtil.toastShort(this, "标题不能为空!");
|
||||
return;
|
||||
}
|
||||
|
||||
note.setTitle(title);
|
||||
note.setContent(content);
|
||||
note.setCreatedTime(getCurrentTimeFormat());
|
||||
long rowId = mNoteDbOpenHelper.updateData(note);
|
||||
if (rowId != -1) {
|
||||
ToastUtil.toastShort(this, "修改成功!");
|
||||
this.finish();
|
||||
}else{
|
||||
ToastUtil.toastShort(this, "修改失败!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String getCurrentTimeFormat() {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss");
|
||||
Date date = new Date();
|
||||
return sdf.format(date);
|
||||
}
|
||||
}
|
@ -0,0 +1,191 @@
|
||||
package com.example.noteapp281;
|
||||
|
||||
import android.app.SearchManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.example.noteapp281.adapter.MyAdapter;
|
||||
import com.example.noteapp281.bean.Note;
|
||||
import com.example.noteapp281.util.SpfUtil;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private RecyclerView mRecyclerView;
|
||||
private FloatingActionButton mBtnAdd;
|
||||
private List<Note> mNotes;
|
||||
private MyAdapter mMyAdapter;
|
||||
|
||||
private NoteDbOpenHelper mNoteDbOpenHelper;
|
||||
|
||||
public static final int MODE_LINEAR = 0;
|
||||
public static final int MODE_GRID = 1;
|
||||
|
||||
public static final String KEY_LAYOUT_MODE = "key_layout_mode";
|
||||
|
||||
private int currentListLayoutMode = MODE_LINEAR;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
initView();
|
||||
initData();
|
||||
initEvent();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
refreshDataFromDb();
|
||||
setListLayout();
|
||||
}
|
||||
|
||||
private void setListLayout() {
|
||||
currentListLayoutMode = SpfUtil.getIntWithDefault(this, KEY_LAYOUT_MODE, MODE_LINEAR);
|
||||
if (currentListLayoutMode == MODE_LINEAR) {
|
||||
setToLinearList();
|
||||
}else{
|
||||
setToGridList();
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshDataFromDb() {
|
||||
mNotes = getDataFromDB();
|
||||
mMyAdapter.refreshData(mNotes);
|
||||
}
|
||||
|
||||
private void initEvent() {
|
||||
mMyAdapter = new MyAdapter(this, mNotes);
|
||||
mRecyclerView.setAdapter(mMyAdapter);
|
||||
// LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
|
||||
// mRecyclerView.setLayoutManager(linearLayoutManager);
|
||||
// mMyAdapter.setViewType(MyAdapter.TYPE_LINEAR_LAYOUT);
|
||||
setListLayout();
|
||||
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
mNotes = new ArrayList<>();
|
||||
mNoteDbOpenHelper = new NoteDbOpenHelper(this);
|
||||
//
|
||||
// for (int i = 0; i < 30; i++) {
|
||||
// Note note = new Note();
|
||||
// note.setTitle("这是标题"+i);
|
||||
// note.setContent("这是内容"+i);
|
||||
// note.setCreatedTime(getCurrentTimeFormat());
|
||||
// mNotes.add(note);
|
||||
// }
|
||||
|
||||
// mNotes = getDataFromDB();
|
||||
|
||||
}
|
||||
|
||||
private List<Note> getDataFromDB() {
|
||||
return mNoteDbOpenHelper.queryAllFromDb();
|
||||
}
|
||||
|
||||
private String getCurrentTimeFormat() {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss");
|
||||
Date date = new Date();
|
||||
return simpleDateFormat.format(date);
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
mRecyclerView = findViewById(R.id.rlv);
|
||||
}
|
||||
|
||||
|
||||
public void add(View view) {
|
||||
Intent intent = new Intent(this, AddActivity.class);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.menu_main, menu);
|
||||
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
|
||||
|
||||
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
mNotes = mNoteDbOpenHelper.queryFromDbByTitle(newText);
|
||||
mMyAdapter.refreshData(mNotes);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
item.setChecked(true);
|
||||
|
||||
switch (item.getItemId()) {
|
||||
|
||||
case R.id.menu_linear:
|
||||
setToLinearList();
|
||||
currentListLayoutMode = MODE_LINEAR;
|
||||
SpfUtil.saveInt(this,KEY_LAYOUT_MODE,MODE_LINEAR);
|
||||
|
||||
return true;
|
||||
case R.id.menu_grid:
|
||||
|
||||
setToGridList();
|
||||
currentListLayoutMode = MODE_GRID;
|
||||
SpfUtil.saveInt(this,KEY_LAYOUT_MODE,MODE_GRID);
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void setToLinearList() {
|
||||
RecyclerView.LayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
|
||||
mRecyclerView.setLayoutManager(linearLayoutManager);
|
||||
mMyAdapter.setViewType(MyAdapter.TYPE_LINEAR_LAYOUT);
|
||||
mMyAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
private void setToGridList() {
|
||||
RecyclerView.LayoutManager gridLayoutManager = new GridLayoutManager(this, 2);
|
||||
mRecyclerView.setLayoutManager(gridLayoutManager);
|
||||
mMyAdapter.setViewType(MyAdapter.TYPE_GRID_LAYOUT);
|
||||
mMyAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
if (currentListLayoutMode == MODE_LINEAR) {
|
||||
MenuItem item = menu.findItem(R.id.menu_linear);
|
||||
item.setChecked(true);
|
||||
} else {
|
||||
menu.findItem(R.id.menu_grid).setChecked(true);
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
}
|
@ -0,0 +1,130 @@
|
||||
package com.example.noteapp281;
|
||||
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.database.sqlite.SQLiteOpenHelper;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.example.noteapp281.bean.Note;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class NoteDbOpenHelper extends SQLiteOpenHelper {
|
||||
|
||||
private static final String DB_NAME = "noteSQLite.db";
|
||||
private static final String TABLE_NAME_NOTE = "note";
|
||||
|
||||
private static final String CREATE_TABLE_SQL = "create table " + TABLE_NAME_NOTE + " (id integer primary key autoincrement, title text, content text, create_time text)";
|
||||
|
||||
|
||||
public NoteDbOpenHelper(Context context) {
|
||||
super(context, DB_NAME, null, 1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onCreate(SQLiteDatabase db) {
|
||||
db.execSQL(CREATE_TABLE_SQL);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
||||
|
||||
}
|
||||
|
||||
public long insertData(Note note) {
|
||||
|
||||
SQLiteDatabase db = getWritableDatabase();
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
values.put("title", note.getTitle());
|
||||
values.put("content", note.getContent());
|
||||
values.put("create_time", note.getCreatedTime());
|
||||
|
||||
return db.insert(TABLE_NAME_NOTE, null, values);
|
||||
}
|
||||
|
||||
public int deleteFromDbById(String id) {
|
||||
SQLiteDatabase db = getWritableDatabase();
|
||||
// return db.delete(TABLE_NAME_NOTE, "id = ?", new String[]{id});
|
||||
// return db.delete(TABLE_NAME_NOTE, "id is ?", new String[]{id});
|
||||
return db.delete(TABLE_NAME_NOTE, "id like ?", new String[]{id});
|
||||
}
|
||||
|
||||
public int updateData(Note note) {
|
||||
|
||||
SQLiteDatabase db = getWritableDatabase();
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
values.put("title", note.getTitle());
|
||||
values.put("content", note.getContent());
|
||||
values.put("create_time", note.getCreatedTime());
|
||||
|
||||
return db.update(TABLE_NAME_NOTE, values, "id like ?", new String[]{note.getId()});
|
||||
}
|
||||
|
||||
public List<Note> queryAllFromDb() {
|
||||
|
||||
SQLiteDatabase db = getWritableDatabase();
|
||||
List<Note> noteList = new ArrayList<>();
|
||||
|
||||
Cursor cursor = db.query(TABLE_NAME_NOTE, null, null, null, null, null, null);
|
||||
if (cursor != null) {
|
||||
while (cursor.moveToNext()) {
|
||||
String id = cursor.getString(cursor.getColumnIndex("id"));
|
||||
String title = cursor.getString(cursor.getColumnIndex("title"));
|
||||
String content = cursor.getString(cursor.getColumnIndex("content"));
|
||||
String createTime = cursor.getString(cursor.getColumnIndex("create_time"));
|
||||
|
||||
Note note = new Note();
|
||||
note.setId(id);
|
||||
note.setTitle(title);
|
||||
note.setContent(content);
|
||||
note.setCreatedTime(createTime);
|
||||
|
||||
noteList.add(note);
|
||||
}
|
||||
cursor.close();
|
||||
}
|
||||
|
||||
return noteList;
|
||||
|
||||
}
|
||||
|
||||
public List<Note> queryFromDbByTitle(String title) {
|
||||
if (TextUtils.isEmpty(title)) {
|
||||
return queryAllFromDb();
|
||||
}
|
||||
|
||||
SQLiteDatabase db = getWritableDatabase();
|
||||
List<Note> noteList = new ArrayList<>();
|
||||
|
||||
Cursor cursor = db.query(TABLE_NAME_NOTE, null, "title like ?", new String[]{"%"+title+"%"}, null, null, null);
|
||||
|
||||
if (cursor != null) {
|
||||
|
||||
while (cursor.moveToNext()) {
|
||||
String id = cursor.getString(cursor.getColumnIndex("id"));
|
||||
String title2 = cursor.getString(cursor.getColumnIndex("title"));
|
||||
String content = cursor.getString(cursor.getColumnIndex("content"));
|
||||
String createTime = cursor.getString(cursor.getColumnIndex("create_time"));
|
||||
|
||||
Note note = new Note();
|
||||
note.setId(id);
|
||||
note.setTitle(title2);
|
||||
note.setContent(content);
|
||||
note.setCreatedTime(createTime);
|
||||
noteList.add(note);
|
||||
}
|
||||
cursor.close();
|
||||
}
|
||||
return noteList;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,230 @@
|
||||
package com.example.noteapp281.adapter;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.example.noteapp281.EditActivity;
|
||||
import com.example.noteapp281.NoteDbOpenHelper;
|
||||
import com.example.noteapp281.R;
|
||||
import com.example.noteapp281.bean.Note;
|
||||
import com.example.noteapp281.util.ToastUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private List<Note> mBeanList;
|
||||
private LayoutInflater mLayoutInflater;
|
||||
private Context mContext;
|
||||
|
||||
private NoteDbOpenHelper mNoteDbOpenHelper;
|
||||
|
||||
private int viewType;
|
||||
|
||||
public static int TYPE_LINEAR_LAYOUT = 0;
|
||||
public static int TYPE_GRID_LAYOUT = 1;
|
||||
|
||||
public MyAdapter(Context context, List<Note> mBeanList){
|
||||
this.mBeanList = mBeanList;
|
||||
this.mContext = context;
|
||||
mLayoutInflater = LayoutInflater.from(mContext);
|
||||
mNoteDbOpenHelper = new NoteDbOpenHelper(mContext);
|
||||
}
|
||||
|
||||
public void setViewType(int viewType) {
|
||||
this.viewType = viewType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return viewType;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if(viewType == TYPE_LINEAR_LAYOUT){
|
||||
View view = mLayoutInflater.inflate(R.layout.list_item_layout, parent, false);
|
||||
MyViewHolder myViewHolder = new MyViewHolder(view);
|
||||
return myViewHolder;
|
||||
}else if(viewType == TYPE_GRID_LAYOUT){
|
||||
View view = mLayoutInflater.inflate(R.layout.list_item_grid_layout, parent, false);
|
||||
MyGridViewHolder myGridViewHolder = new MyGridViewHolder(view);
|
||||
return myGridViewHolder;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder == null) {
|
||||
return;
|
||||
}
|
||||
if(holder instanceof MyViewHolder){
|
||||
bindMyViewHolder((MyViewHolder) holder, position);
|
||||
} else if (holder instanceof MyGridViewHolder) {
|
||||
bindGridViewHolder((MyGridViewHolder) holder, position);
|
||||
}
|
||||
}
|
||||
|
||||
private void bindMyViewHolder(MyViewHolder holder, int position) {
|
||||
Note note = mBeanList.get(position);
|
||||
holder.mTvTitle.setText(note.getTitle());
|
||||
holder.mTvContent.setText(note.getContent());
|
||||
holder.mTvTime.setText(note.getCreatedTime());
|
||||
holder.rlContainer.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
Intent intent = new Intent(mContext, EditActivity.class);
|
||||
intent.putExtra("note", note);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
holder.rlContainer.setOnLongClickListener(new View.OnLongClickListener() {
|
||||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
// 弹出弹窗
|
||||
Dialog dialog = new Dialog(mContext, android.R.style.ThemeOverlay_Material_Dialog_Alert);
|
||||
View dialogView = mLayoutInflater.inflate(R.layout.list_item_dialog_layout, null);
|
||||
TextView tvDelete = dialogView.findViewById(R.id.tv_delete);
|
||||
TextView tvEdit = dialogView.findViewById(R.id.tv_edit);
|
||||
|
||||
tvDelete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int row = mNoteDbOpenHelper.deleteFromDbById(note.getId());
|
||||
if (row > 0) {
|
||||
removeData(position);
|
||||
}
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
tvEdit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(mContext, EditActivity.class);
|
||||
intent.putExtra("note", note);
|
||||
mContext.startActivity(intent);
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.setContentView(dialogView);
|
||||
dialog.setCanceledOnTouchOutside(true);
|
||||
dialog.show();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void bindGridViewHolder(MyGridViewHolder holder, int position) {
|
||||
Note note = mBeanList.get(position);
|
||||
holder.mTvTitle.setText(note.getTitle());
|
||||
holder.mTvContent.setText(note.getContent());
|
||||
holder.mTvTime.setText(note.getCreatedTime());
|
||||
holder.rlContainer.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
Intent intent = new Intent(mContext, EditActivity.class);
|
||||
intent.putExtra("note", note);
|
||||
mContext.startActivity(intent);
|
||||
}
|
||||
});
|
||||
|
||||
holder.rlContainer.setOnLongClickListener(new View.OnLongClickListener() {
|
||||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
// 弹出弹窗
|
||||
Dialog dialog = new Dialog(mContext, android.R.style.ThemeOverlay_Material_Dialog_Alert);
|
||||
View dialogView = mLayoutInflater.inflate(R.layout.list_item_dialog_layout, null);
|
||||
TextView tvDelete = dialogView.findViewById(R.id.tv_delete);
|
||||
TextView tvEdit = dialogView.findViewById(R.id.tv_edit);
|
||||
|
||||
tvDelete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int row = mNoteDbOpenHelper.deleteFromDbById(note.getId());
|
||||
if (row > 0) {
|
||||
removeData(position);
|
||||
}
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
tvEdit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(mContext, EditActivity.class);
|
||||
intent.putExtra("note", note);
|
||||
mContext.startActivity(intent);
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.setContentView(dialogView);
|
||||
dialog.setCanceledOnTouchOutside(true);
|
||||
dialog.show();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mBeanList.size();
|
||||
}
|
||||
|
||||
public void refreshData(List<Note> notes) {
|
||||
this.mBeanList = notes;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void removeData(int pos) {
|
||||
mBeanList.remove(pos);
|
||||
notifyItemRemoved(pos);
|
||||
}
|
||||
|
||||
class MyViewHolder extends RecyclerView.ViewHolder{
|
||||
TextView mTvTitle;
|
||||
TextView mTvContent;
|
||||
TextView mTvTime;
|
||||
ViewGroup rlContainer;
|
||||
public MyViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
this.mTvTitle = itemView.findViewById(R.id.tv_title);
|
||||
this.mTvContent = itemView.findViewById(R.id.tv_content);
|
||||
this.mTvTime = itemView.findViewById(R.id.tv_time);
|
||||
this.rlContainer = itemView.findViewById(R.id.rl_item_container);
|
||||
}
|
||||
}
|
||||
|
||||
class MyGridViewHolder extends RecyclerView.ViewHolder{
|
||||
|
||||
TextView mTvTitle;
|
||||
TextView mTvContent;
|
||||
TextView mTvTime;
|
||||
ViewGroup rlContainer;
|
||||
|
||||
public MyGridViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
this.mTvTitle = itemView.findViewById(R.id.tv_title);
|
||||
this.mTvContent = itemView.findViewById(R.id.tv_content);
|
||||
this.mTvTime = itemView.findViewById(R.id.tv_time);
|
||||
this.rlContainer = itemView.findViewById(R.id.rl_item_container);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package com.example.noteapp281.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class Note implements Serializable {
|
||||
|
||||
private String title;
|
||||
private String content;
|
||||
private String createdTime;
|
||||
private String id;
|
||||
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
public String getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(String createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Note{" +
|
||||
"title='" + title + '\'' +
|
||||
", content='" + content + '\'' +
|
||||
", createdTime='" + createdTime + '\'' +
|
||||
", id='" + id + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package com.example.noteapp281.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
public class SpfUtil {
|
||||
|
||||
private static String SPF_NAME = "noteSpf";
|
||||
|
||||
public static void saveString(Context context, String key, String value) {
|
||||
SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor edit = spf.edit();
|
||||
edit.putString(key, value);
|
||||
edit.apply();
|
||||
}
|
||||
|
||||
public static String getString(Context context, String key) {
|
||||
SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
|
||||
return spf.getString(key, "");
|
||||
}
|
||||
|
||||
public static void saveInt(Context context, String key, int value) {
|
||||
SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor edit = spf.edit();
|
||||
edit.putInt(key, value);
|
||||
edit.apply();
|
||||
}
|
||||
|
||||
public static int getInt(Context context, String key) {
|
||||
SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
|
||||
return spf.getInt(key, -1);
|
||||
}
|
||||
|
||||
public static int getIntWithDefault(Context context, String key, int defValue) {
|
||||
SharedPreferences spf = context.getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
|
||||
return spf.getInt(key, defValue);
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.example.noteapp281.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class ToastUtil {
|
||||
|
||||
public static void toastShort(Context context, String msg) {
|
||||
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
public static void toastLong(Context context, String msg) {
|
||||
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue