以前一切正常,现在当我运行我的应用程序时,它开始产生这个错误,我的应用程序一直在崩溃。
此错误不断出现
android.content.Intentandroid.content.ntent.putExtra(java.lang.String, int)'对空对象引用
这是我的飞溅活动代码。
Oncreate方法代码如下
@重写受保护的void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
FirebaseApp.initializeApp(SplashActivity.this);
fragmentKey=0;
intiViews();
new Handler().postDelayed(() -> {
redirectingIntent.putExtra("fragmentKey", fragmentKey);
startActivity(redirectingIntent);
finish();
}, 3000);
InitViews方法代码如下所示
private void intiViews() {
userRef = FirebaseDatabase.getInstance().getReference(Common.USER_REF);
mAuth = FirebaseAuth.getInstance();
//Check User if it exist
if (mAuth.getCurrentUser() != null) {
user = mAuth.getCurrentUser();
CheckUserFromFirebase(user);
} else {
redirectingIntent = new Intent(SplashActivity.this, RegisterActivity.class);
fragmentKey = 0;
}
}
private void CheckUserFromFirebase(final FirebaseUser user) {
userRef.child(user.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
UserModel userModel = dataSnapshot.getValue(UserModel.class);
updateUser(userModel);
redirectingIntent = new Intent(SplashActivity.this, MainActivity.class);
fragmentKey = 0;
} else {
RegisterUser();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(SplashActivity.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
在这里,我使用上载到firebase的用户模型更新我的用户
private void updateUser(UserModel model) {
Common.CurrentUser = model;
Common.CurrentUser.setUid(user.getUid());
}
如果给定uid没有注册用户,则intent将转到注册活动
private void RegisterUser() {
Toast.makeText(this, "No Data found", Toast.LENGTH_SHORT).show();
redirectingIntent = new Intent(SplashActivity.this, RegisterActivity.class);
fragmentKey = 1;
}
}
首先,我会避免延迟处理程序,因为它容易出错;更确切地说,此代码
new Handler().postDelayed(() -> {
redirectingIntent.putExtra("fragmentKey", fragmentKey);
startActivity(redirectingIntent);
finish();
}, 3000);
我会制作另一种方法来处理重定向,并在需要时随时调用它
private void redirectToNextActivity(fragmentKey: Integer) {
if (redirectingIntent != null ) {
redirectingIntent.putExtra("fragmentKey", fragmentKey);
startActivity(redirectingIntent);
finish();
}
}
//update by this
new Handler().postDelayed(() -> {
if(redirectingIntent != null && fragmentKey != null)
{
redirectingIntent.putExtra("fragmentKey", fragmentKey);
startActivity(redirectingIntent);
finish();
}
}, 3000);
我有3个活动A、B和C。A导致B,B导致C。我希望能够在A和B之间来回移动,但我希望在C开始后完成A和B。我知道如何在通过意图启动C时关闭B,但在启动C时如何关闭A?
我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?
最近一个面试官问了我一个很棘手的问题。这个问题有几个部分。 为什么(问题是为什么,而不是如何)需要在从一个活动发送到另一个活动时打包对象,而不是直接发送 我给的答案- Parcelable为开发人员提供了限制对象创建的能力,这在某种程度上使其使用速度更快。 我没有得到任何有用的链接后,谷歌,而且我或面试官不太满意的答案。如果你们能帮忙,那就太好了!
//使用startActivity(intent)也不起作用//无论我做什么,应用程序都会崩溃
下面的第一个代码块是我的主要活动,我在其中创建了第二个活动的意图。在这个活动中,我将在列表视图中显示费用,因为它还没有完全实现,所以我暂时忽略了它。我想做的就是启动第二个活动,让用户输入详细信息,然后按下一个按钮将活动添加到列表视图中。@override公共布尔onOptionsItemSelected(MenuItem item){int id=item.getItemId(); 这是用户输入数
问题内容: 我对android非常陌生,我正在尝试将用户输入的数据(他们的名字)发送到另一个活动。过去,我可以使用Intent在活动之间发送单行代码,但是我无法解决如何向两个不同的TextView发送两个不同的字符串。 这是到目前为止我的MainActivity代码: 我第二项活动MainGame的代码: 当我运行它时,我得到了两个TextView中都为“ name2”添加的内容。我需要做些什么来