所以,我的活动A是:
public class imei extends AppCompatActivity {
//variables
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imei);
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if(Long.parseLong(IMEI) == IMEI2){
IMEI .equals(IMEI2);
textView.setText("IMEI NUMBER : " + IMEI);
Bundle bundle = new Bundle();
bundle.putBoolean("key", true);
Intent intent = new Intent(imei.this, menu_utama.class);
intent.putExtras(bundle);
imei.this.startActivity(intent);
}else{}
现在我想将布尔值从bundle传递给Activity B:
public class MyApplication extends Application {
private BeaconManager beaconManager;
//variables
@Override
public void onCreate() {
super.onCreate();
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
final boolean success = bundle.getBoolean("key");
..code
if(success){
do something
}else{do something
但getIntent()
为红色,但当我更改为extends AppCompatActivity
时,getIntent()
更正。不知何故,它与onCreate(Bundle savedInstanceState)
和extends Application
有什么关系,我该如何解决这个问题
答案 0 :(得分:0)
所以我的问题是如何在活动类和aplication类之间传递值,首先尝试我使用的是使用getIntent()的Bundle,但是它没有用,因为getIntent()在activity类中,因为我想要在应用程序类中使用,所以我使用共享首选项并且它可以工作。
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("masuk", true);
// Save the changes in SharedPreferences
editor.apply(); // commit changes
将它放在活动类中并获取应用程序类中的共享首选项:
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("masuk", true);
// Save the changes in SharedPreferences
editor.apply(); // commit changes
然后只使用if(masuk){do what you want here}else{do what you want here}
解决。