@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的
时间: 2024-02-14 07:12:20 浏览: 132
要将这段代码改成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。
阅读全文