该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
完成作业记事本中,代码无报错,其他功能都无问题,但是点击保存后就会闪退,然后只能卸载重装程序才能再次运行
package cn.itcast.notepad;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import cn.itcast.notepad.database.SQLiteHelper;
import cn.itcast.notepad.utils.DBUtils;
public class RecordActivity extends AppCompatActivity implements View.OnClickListener {
ImageView note_back;
TextView note_time;
EditText content;
ImageView delete;
ImageView note_save;
TextView noteName;
private SQLiteHelper mSQLiteHelper;
private String id;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record);
note_back = (ImageView)findViewById(R.id.note_back); //后退键
note_time = (TextView)findViewById(R.id.tv_time); //保存记录的时间
content = (EditText)findViewById(R.id.note_content); //记录的内容
delete = (ImageView)findViewById(R.id.delete); //清空的按钮
note_save = (ImageView)findViewById(R.id.note_save); //保存的按钮
noteName = (TextView)findViewById(R.id.note_name); //标题的名称
note_back.setOnClickListener(this);
delete.setOnClickListener(this);
note_save.setOnClickListener(this);
initData();
}
public void initData(){
mSQLiteHelper = new SQLiteHelper(this);
noteName.setText("添加记录");
Intent intent = getIntent();
if (intent!= null){
id = intent.getStringExtra("id");
if (id !=null){
noteName.setText("修改记录");
content.setText(intent.getStringExtra("content"));
note_time.setText(intent.getStringExtra("time"));
note_time.setVisibility(View.VISIBLE);
}
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.note_back:
finish();
break;
case R.id.delete:
content.setText("");
break;
case R.id.note_save:
String noteContent = content.getText().toString().trim();
if(id!=null){
//修改记录功能
if (noteContent.length()>0){
if (mSQLiteHelper.updateData(id,noteContent, DBUtils.geTIME())) {
showToast("修改成功");
setResult(2);
finish();
}else {
showToast("修改失败");
}
}else {
showToast("修改记录不能为空");
}
}else {
//添加记录功能
if (noteContent.length()>0){
if (mSQLiteHelper.insertData(noteContent, DBUtils.geTIME())) {
showToast("保存成功");
setResult(2);
finish();
}else {
showToast("保存失败");
}
}else {
showToast("保存记录不能为空");
}
}
break;
}
}
public void showToast(String message){
Toast.makeText(RecordActivity.this,message,Toast.LENGTH_LONG).show();
}
}
--------------------------------------------------------------------------------------------
package cn.itcast.notepad;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.List;
import cn.itcast.notepad.adapter.NotepadAdapter;
import cn.itcast.notepad.bean.NotepadBean;
import cn.itcast.notepad.database.SQLiteHelper;
public class NotepadActivity extends AppCompatActivity {
private ListView listView;
private SQLiteHelper mSQLiteHelper;
private List list;
NotepadAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notepad);
listView = findViewById(R.id.listview);
ImageView imageView = findViewById(R.id.add);
initData();
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(NotepadActivity.this,RecordActivity.class);
startActivityForResult(intent,1);
}
});
}
public void initData(){
mSQLiteHelper = new SQLiteHelper(this);
showQueryData();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
NotepadBean notepadBean = list.get(position);
Intent intent = new Intent(NotepadActivity.this,RecordActivity.class);
intent.putExtra("id",notepadBean.getId());
intent.putExtra("content",notepadBean.getNotepadContent());
intent.putExtra("time",notepadBean.getNotepadTime());
NotepadActivity.this.startActivityForResult(intent,1);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView> parent, View view, final int position, long id) {
AlertDialog dialog;
AlertDialog.Builder builder = new AlertDialog.Builder(NotepadActivity.this)
.setMessage("是否删除此记录")
.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
NotepadBean notepadBean = list.get(position);
if(mSQLiteHelper.deleteData(notepadBean.getId())){
list.remove(position);
adapter.notifyDataSetChanged();
Toast.makeText(NotepadActivity.this,"删除成功",Toast.LENGTH_LONG).show();
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog = builder.create();
dialog.show();
return true;
}
});
}
private void showQueryData(){
if (list!=null){
list.clear();
}
list = mSQLiteHelper.query();
adapter = new NotepadAdapter(this,list);
listView.setAdapter(adapter);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == 2){
showQueryData();
}
}
}
------------------------------------------------------------------------------