if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return; }
时间: 2024-06-01 14:08:59 浏览: 25
这段代码是在 Android 中的 Activity 中的 onCreate() 方法中常见的一段代码,用于判断当前 Activity 是否是被其他 Activity 唤醒而已经处于前台,如果是,则将当前 Activity 关闭,使用户看到的界面保持一致。
具体来说,这里使用了 Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT 标志位,该标志位表示当前 Activity 已经在前台运行了,如果该标志位存在,则说明当前 Activity 在栈顶,需要关闭。然后通过调用 finish() 方法关闭当前 Activity,最后通过 return 语句结束 onCreate() 方法的执行。
相关问题
@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.activity_estimate); Intent intent = getIntent(); String code = intent.getStringExtra("code"); String name = intent.getStringExtra("name"); final long ranking = intent.getLongExtra("ranking",0L); final float pe = intent.getFloatExtra("pe", 0.0f); final float pb = intent.getFloatExtra("pb", 0.0f); tv_code = (TextView) findViewById(R.id.tv_code); tv_name = (TextView) findViewById(R.id.tv_name); tv_ranking = (TextView) findViewById(R.id.tv_ranking); tv_pe = (TextView) findViewById(R.id.tv_pe); tv_pb = (TextView) findViewById(R.id.tv_pb); tv_suggestEstimate = (TextView) findViewById(R.id.tv_suggestEstimate); tv_code.setText("姓名:" + code); tv_name.setText("单位:" + name); tv_ranking.setText("手机号码:" + ranking); tv_pe.setText("邮件:" + pe); tv_pb.setText("备注:" + pb); btn_estimate = (Button) findViewById(R.id.btn_estimate); btn_estimate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { estimateResult = estimateData(ranking, pe, pb); //Log.i("EA", estimateResult) ; tv_suggestEstimate.setText("提示:" + estimateResult); } }); btn_return = (Button) findViewById(R.id.btn_return); btn_return.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("data", estimateResult); setResult(2, intent); finish(); } }); }如何去掉final
如果想要去掉 `final` 关键字,需要注意以下几点:
1. `ranking`、`pe`、`pb` 这三个变量在 `onClick` 方法中被使用,如果去掉 `final`,则这三个变量如果在 `onClick` 方法中被修改,编译时会报错。
2. 如果想要去掉 `final`,则需要将这三个变量定义为 Activity 的成员变量,而不是在 `onCreate` 方法中定义。
下面是修改后的代码:
```java
private long ranking;
private float pe;
private float pb;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_estimate);
Intent intent = getIntent();
String code = intent.getStringExtra("code");
String name = intent.getStringExtra("name");
ranking = intent.getLongExtra("ranking",0L);
pe = intent.getFloatExtra("pe", 0.0f);
pb = intent.getFloatExtra("pb", 0.0f);
tv_code = (TextView) findViewById(R.id.tv_code);
tv_name = (TextView) findViewById(R.id.tv_name);
tv_ranking = (TextView) findViewById(R.id.tv_ranking);
tv_pe = (TextView) findViewById(R.id.tv_pe);
tv_pb = (TextView) findViewById(R.id.tv_pb);
tv_suggestEstimate = (TextView) findViewById(R.id.tv_suggestEstimate);
tv_code.setText("姓名:" + code);
tv_name.setText("单位:" + name);
tv_ranking.setText("手机号码:" + ranking);
tv_pe.setText("邮件:" + pe);
tv_pb.setText("备注:" + pb);
btn_estimate = (Button) findViewById(R.id.btn_estimate);
btn_estimate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
estimateResult = estimateData(ranking, pe, pb);
//Log.i("EA", estimateResult) ;
tv_suggestEstimate.setText("提示:" + estimateResult);
}
});
btn_return = (Button) findViewById(R.id.btn_return);
btn_return.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("data", estimateResult);
setResult(2, intent);
finish();
}
});
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)