public void delete(View v) { int id = getIntent().getIntExtra(NoteDb.ID,0); mSql.delete(NoteDb.TABLE_NAME," _id = " + id,null); finish(); }
时间: 2024-02-26 16:52:27 浏览: 113
这是 Show 类中的 delete() 方法。首先通过 getIntent() 方法获取从上一个 Activity 传来的笔记的 id 值并将其赋值给变量 id。然后调用 mSql 的 delete() 方法从 NoteDb.TABLE_NAME 表中删除 _id 等于 id 的记录。最后调用 finish() 方法关闭当前 Activity。这段代码实现了删除笔记的功能。
相关问题
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_layout); myToolbar = findViewById(R.id.my_Toolbar); setSupportActionBar(myToolbar); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); //设置toolbar取代actionbar myToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { autoSetMessage(); setResult(RESULT_OK, intent); finish(); } }); et = findViewById(R.id.et); Intent getIntent = getIntent(); openMode = getIntent.getIntExtra("mode", 0); if (openMode == 3) {//打开已存在的note id = getIntent.getLongExtra("id", 0); old_content = getIntent.getStringExtra("content"); old_time = getIntent.getStringExtra("time"); old_Tag = getIntent.getIntExtra("tag", 1); et.setText(old_content); et.setSelection(old_content.length()); } }这段代码怎么改成fragment的
要将这段代码改成Fragment,需要将其中的Activity相关的代码改成Fragment相关的代码。具体实现如下:
1. 首先,将类定义修改为继承Fragment类,如下:
```
public class EditFragment extends Fragment {
```
2. 将onCreate方法中的super.onCreate(savedInstanceState)删除,因为Fragment没有这个方法,如下:
```
@Override
public void onCreate(Bundle savedInstanceState) {
// 删除super.onCreate(savedInstanceState);
// ...
}
```
3. 将setContentView方法删除,因为Fragment没有布局文件,布局文件应该在Activity中实现,如下:
```
// 删除setContentView(R.layout.edit_layout);
```
4. 将findViewById方法中的参数修改为Fragment的布局文件中的控件ID,如下:
```
myToolbar = view.findViewById(R.id.my_Toolbar);
et = view.findViewById(R.id.et);
```
5. 将getIntent方法修改为getArguments方法,因为Fragment没有getIntent方法,如下:
```
Bundle args = getArguments();
openMode = args.getInt("mode", 0);
if (openMode == 3) {//打开已存在的note
id = args.getLong("id", 0);
old_content = args.getString("content");
old_time = args.getString("time");
old_Tag = args.getInt("tag", 1);
et.setText(old_content);
et.setSelection(old_content.length());
}
```
6. 将setSupportActionBar方法和getSupportActionBar方法删除,因为Fragment没有这些方法,如下:
```
// 删除setSupportActionBar(myToolbar);
// 删除getSupportActionBar().setHomeButtonEnabled(true);
// 删除getSupportActionBar().setDisplayHomeAsUpEnabled(true);
```
7. 将setNavigationOnClickListener方法修改为setOnClickListener方法,因为Fragment没有setNavigationOnClickListener方法,如下:
```
myToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
autoSetMessage();
setResult(RESULT_OK, intent);
getActivity().finish();
}
});
```
注意:在Fragment中需要使用getActivity()方法来获取所在的Activity。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.show); mTextview = (TextView)this.findViewById(R.id.showtext); time = (TextView)this.findViewById(R.id.showtime); mDb = new NoteDb(this); mSql = mDb.getWritableDatabase(); mTextview.setText(getIntent().getStringExtra(NoteDb.CONTENT)); time.setText(getIntent().getStringExtra(NoteDb.TIME)); } public void delete(View v) { int id = getIntent().getIntExtra(NoteDb.ID,0); mSql.delete(NoteDb.TABLE_NAME," _id = " + id,null); finish(); } public void goBack(View v) { finish(); } }在这当中添加一个修改的方法
可以在该类中添加一个名为update的方法,代码如下:
```
public void update(View v) {
int id = getIntent().getIntExtra(NoteDb.ID, 0);
String content = mTextview.getText().toString();
String updateTime = getCurrentTime();
ContentValues values = new ContentValues();
values.put(NoteDb.CONTENT, content);
values.put(NoteDb.TIME, updateTime);
mSql.update(NoteDb.TABLE_NAME, values, " _id = " + id, null);
Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
}
```
该方法首先获取当前笔记的ID,然后获取笔记的内容和当前时间。接着创建一个ContentValues对象,将笔记内容和当前时间存入其中。最后使用SQLiteDatabase的update方法更新该笔记,并弹出一个提示框提示修改成功。注意,该方法需要在布局文件中添加一个Button,并将其绑定到该方法上。
阅读全文