十日冲刺(DAY10)
最后一天
今天是看看哪里有漏洞,并且用ai给打了点补丁
package com.example.myactivity;
import android.Manifest;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import com.example.myactivity.adapter.MyNoteListAdapter;
import com.example.myactivity.db.bean.Note;
import com.example.myactivity.db.NoteDao;
import com.example.myactivity.ui.BaseActivity;
import com.example.myactivity.view.SpacesItemDecoration;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class MainActivity extends BaseActivity {
private MyNoteListAdapter mNoteListAdapter;
private List<Note> noteList;
private NoteDao noteDao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
//定义需要的权限列表
String[] permissions = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 321) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//如果用户选择禁止,此时程序没有相应权限,执行相应操作
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
//如果没有获取权限,那么可以提示用户去设置界面--->应用权限开启权限
showToast("必须拥有权限");
ActivityCompat.requestPermissions(this, permissions, 321);
} else {
//如果用户同意,此时程序获取到需要的权限,执行希望的操作
}
}
}
}
private void initView() {
Toolbar toolbar = findViewById(R.id.toolbar_main);
setSupportActionBar(toolbar);
ActivityCompat.requestPermissions(this, permissions, 321);
noteDao = new NoteDao(this);
RecyclerView rv_list_main = findViewById(R.id.rv_list_main);
rv_list_main.addItemDecoration(new SpacesItemDecoration(0));//设置item间距
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);//竖向列表
rv_list_main.setLayoutManager(layoutManager);
mNoteListAdapter = new MyNoteListAdapter();
mNoteListAdapter.setmNotes(noteList);
rv_list_main.setAdapter(mNoteListAdapter);
mNoteListAdapter.setOnItemClickListener(new MyNoteListAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, Note note) {
Intent intent = new Intent(MainActivity.this, NoteActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("note", note);
intent.putExtra("data", bundle);
startActivity(intent);
}
});
mNoteListAdapter.setOnItemLongClickListener(new MyNoteListAdapter.OnRecyclerViewItemLongClickListener() {
@Override
public void onItemLongClick(View view, final Note note) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("提示");
builder.setMessage("确定删除日记?");
builder.setCancelable(false);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int ret = noteDao.deleteNote(note.getId());
if (ret > 0) {
showToast("删除成功");
//TODO 删除日记成功后,记得删除图片(分为本地图片和网络图片)
//获取日记中图片的列表 StringUtils.getTextFromHtml(note.getContent(), true);
refreshNoteList();
}
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
}
});
}
//刷新日记列表
private void refreshNoteList() {
if (noteDao == null)
noteDao = new NoteDao(this);
noteList = noteDao.queryNotesAll(0);
mNoteListAdapter.setmNotes(noteList);
mNoteListAdapter.notifyDataSetChanged();
}
@Override
protected void onResume() {
super.onResume();
refreshNoteList();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_new_note:
Intent intent = new Intent(MainActivity.this, NewActivity.class);
intent.putExtra("groupName", "默认日记");
intent.putExtra("flag", 0);
startActivity(intent);
break;
}
return super.onOptionsItemSelected(item);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律