Android Studio工程,运行app一下就闪退,查了百度,说是空指针错误了。由于本人小白,不懂怎么修改希望有大神能够帮助一下

这是源代码
package com.example.myapplication;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import com.example.myapplication.database.MyDB;
import com.example.myapplication.enity.Record;
import com.example.myapplication.util.DateFormatType;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import static android.widget.AdapterView.;
import static com.example.myapplication.util.MyFormat.
;
import static com.example.myapplication.util.MyFormat.getTimeStr;
import static com.example.myapplication.util.MyFormat.myDateFormat;

public class MainActivity extends BaseActivity implements View.OnClickListener,
AdapterView.OnItemClickListener,AdapterView.OnItemLongClickListener{

private final static String TAG = "MainActivity";

MyDB myDB;
private ListView myListView;
private Button createButton;
private MyBaseAdapter myBaseAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_linear_layout);
    init();
}

//初始化控件
private void init(){
    createButton = findViewById(R.id.createButton);
    createButton.setOnClickListener(this);

    myListView = findViewById(R.id.list_view);

    List recordList = new ArrayList<>();

    SQLiteDatabase db = myDB.getReadableDatabase();
    Cursor cursor = db.query(MyDB.TABLE_NAME_RECORD,null,
            null,null,null,
            null,MyDB.NOTICE_TIME+","+MyDB.RECORD_TIME+" DESC");
    if(cursor.moveToFirst()){
        Record record;
        while (!cursor.isAfterLast()){
            record = new Record();
            record.setId(
                    Integer.valueOf(cursor.getString(cursor.getColumnIndex(MyDB.RECORD_ID))));
            record.setTitleName(
                    cursor.getString(cursor.getColumnIndex(MyDB.RECORD_TITLE))
            );
            record.setTextBody(
                    cursor.getString(cursor.getColumnIndex(MyDB.RECORD_BODY))
            );
            record.setCreateTime(
                    cursor.getString(cursor.getColumnIndex(MyDB.RECORD_TIME)));
            record.setNoticeTime(
                    cursor.getString(cursor.getColumnIndex(MyDB.NOTICE_TIME)));
            recordList.add(record);
            cursor.moveToNext();
        }
    }
    cursor.close();
    db.close();
    // 创建一个Adapter的实例
    myBaseAdapter = new MyBaseAdapter(this,recordList, R.layout.list_item);
    myListView.setAdapter(myBaseAdapter);
    // 设置点击监听
    myListView.setOnItemClickListener(this);
    myListView.setOnItemLongClickListener((OnItemLongClickListener) this);
}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.createButton:
            Intent intent = new Intent(MainActivity.this, EditActivity.class);
            startActivity(intent);
            MainActivity.this.finish();
            break;
        default:
            break;
    }
}

@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
    Intent intent = new Intent(MainActivity.this,AmendActivity.class);
    Record record = (Record) myListView.getItemAtPosition(position);
    intent.putExtra(MyDB.RECORD_TITLE,record.getTitleName().trim());
    intent.putExtra(MyDB.RECORD_BODY,record.getTextBody().trim());
    intent.putExtra(MyDB.RECORD_TIME,record.getCreateTime().trim());
    intent.putExtra(MyDB.RECORD_ID,record.getId().toString().trim());
    if (record.getNoticeTime()!=null) {
        intent.putExtra(MyDB.NOTICE_TIME, record.getNoticeTime().trim());
    }
    this.startActivity(intent);
    MainActivity.this.finish();
}

public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
    Record record = (Record) myListView.getItemAtPosition(position);
    showDialog(record,position);
    return true;
}

void showDialog(final Record record,final int position){

    final AlertDialog.Builder dialog =
            new AlertDialog.Builder(MainActivity.this);
    dialog.setTitle("是否删除?");
    String textBody = record.getTextBody();
    dialog.setMessage(
            textBody.length()>150?textBody.substring(0,150)+"...":textBody);
    dialog.setPositiveButton("删除",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    SQLiteDatabase db = myDB.getWritableDatabase();
                    db.delete(MyDB.TABLE_NAME_RECORD,
                            MyDB.RECORD_ID +"=?",
                            new String[]{String.valueOf(record.getId())});
                    db.close();
                    myBaseAdapter.removeItem(position);
                    myListView.post(new Runnable() {
                        @Override
                        public void run() {
                            myBaseAdapter.notifyDataSetChanged();
                        }
                    });
                }
            });
    dialog.setNegativeButton("取消",
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                }
            });
    dialog.show();
}





/**
 * ListView展示的适配器类
 */
class MyBaseAdapter extends BaseAdapter{
    private List recordList;//数据集合
    private Context context;
    private int layoutId;

    public MyBaseAdapter(Context context,List recordList,int layoutId){
        this.context = context;
        this.recordList = recordList;
        this.layoutId = layoutId;
    }

    @Override
    public int getCount() {
        if (recordList!=null&&recordList.size()>0)
            return recordList.size();
        else
            return 0;
    }

    @Override
    public Object getItem(int position) {
        if (recordList!=null&&recordList.size()>0)
            return recordList.get(position);
        else
            return null;
    }

    public void removeItem(int position){
        this.recordList.remove(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @SuppressLint("SetTextI18n")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null) {
            convertView = LayoutInflater.from(
                    getApplicationContext()).inflate(R.layout.list_item, parent,
                    false);
            viewHolder  = new ViewHolder();
            viewHolder.titleView = convertView.findViewById(R.id.list_item_title);
            viewHolder.bodyView = convertView.findViewById(R.id.list_item_body);
            viewHolder.timeView = convertView.findViewById(R.id.list_item_time);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        Record record = recordList.get(position);
        String tile = record.getTitleName();
        viewHolder.titleView.setText((position+1)+"."+(tile.length()>7?tile.substring(0,7)+"...":tile));

// viewHolder.titleView.setText(tile);
String body = record.getTextBody();
viewHolder.bodyView.setText(body.length()>13?body.substring(0,12)+"…":body);
// viewHolder.bodyView.setText(body);
String createTime = record.getCreateTime();
Date date = myDateFormat(createTime,DateFormatType.NORMAL_TIME);
viewHolder.timeView.setText(getTimeStr(date));
return convertView;
}
}

/**
 * ListView里的组件包装类
 */
class ViewHolder{
    TextView titleView;
    TextView bodyView;
    TextView timeView;
}

}
请大神帮帮忙,小白初次接触Android。
这是提示的错误在这里插入图片描述

你可能感兴趣的:(Android Studio工程,运行app一下就闪退,查了百度,说是空指针错误了。由于本人小白,不懂怎么修改希望有大神能够帮助一下)