我一直在尝试从片段向我的mainActivity发送String。我不知道我是否做得对,但是在用户按下片段中的按钮后我开始新的mainActivity Intent。 我想要做的是当打开应用程序时,如果没有从fragment发送的String消息,则需要加载片段而不是mainActivity。 在主Activity的开始我尝试检查消息是否为空但我收到错误,应用程序不想启动,因为我正在尝试访问空对象
java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.audriusalekna.camerapht / com.example.audriusalekna.camerapht.MainActivity}:java.lang.NullPointerException:尝试调用虚方法' java .lang.String android.os.Bundle.getString(java.lang.String)'在null对象referenc
我应该采用不同的方法吗?
这是我的代码
Intent intent = getIntent();
if(intent.getExtras().getString("tagsText") == null){
Fragment fragment = TagsFragment.newInstance(tagsText, "blah");
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment, fragment).commit();
cameraBtn.setEnabled(false);
cameraBtn.setVisibility(View.GONE);
firstTime = false;
}
else{
tagsText = intent.getExtras().getString("tagsText");
Log.v("MESSAGE", tagsText);
}
答案 0 :(得分:1)
您需要检查intent本身是否为NULL,以及其中的bundle是否也不是NULL
if(intent!=null && intent.getExtras() != null && intent.getExtras().getString("tagsText") == null){
else
不应该处理意图或额外内容,因为其中大部分都是null
答案 1 :(得分:0)
下面:
intent.getExtras().getString() == null
你正在检查“一级太深”。你需要:
intent.getExtras() == null
在这里避免这个问题!