来自getExtras()的NullPointerException

我正在创build一个将数据从一个活动转移到另一个活动的意图,如下所示:

Intent intent = new Intent(this, ActivityHighScore.class); intent.putExtra("USERNAME", username); intent.putExtra("PLAYERMOVES", playerMoves); this.startActivity(intent); 

然后,我想检查是否所有这些数据都存在,因为它可以从其他来源开始,没有设置这个数据。 我使用这个语句:

  Bundle bundle = getIntent().getExtras(); if (!bundle.getString("USERNAME").equals(null) && bundle.getInt("PLAYERMOVES") != 0){ String username = bundle.getString("USERNAME"); int playerMoves = bundle.getInt("PLAYERMOVES"); addHighScore(username, playerMoves); } 

但是这会导致一个无效的pointerexception,我完全相信如何。 我以为我正在处理string和.equals(),但我认为这…任何帮助将不胜感激。 谢谢。

Solutions Collecting From Web of "来自getExtras()的NullPointerException"

更换

 Bundle bundle = getIntent().getExtras(); if (!bundle.getString("USERNAME").equals(null) && bundle.getInt("PLAYERMOVES") != 0){ String username = bundle.getString("USERNAME"); int playerMoves = bundle.getInt("PLAYERMOVES"); addHighScore(username, playerMoves); } 

  if (getIntent().getStringExtra("USERNAME") != null && (getIntent().getIntExtra("PLAYERMOVES", 0) != 0){ String username = bundle.getString("USERNAME"); int playerMoves = bundle.getInt("PLAYERMOVES"); addHighScore(username, playerMoves); } 

那么,我有一个类似的问题。 在我的情况下,当我检查我的bundle.getString()是否等于null时, NullPointerException发生。

下面是我如何解决它,在我的情况:

 Intent intent = getIntent(); if(intent.hasExtra("nomeUsuario")){ bd = getIntent().getExtras(); if(!bd.getString("nomeUsuario").equals(null)){ nomeUsuario = bd.getString("nomeUsuario"); } } 

你正在做的方法是正确的。 空指针exception即将到来,因为该片段不被replace为正确的片段对象。 这是工作代码活动类

 Bundle bundle = new Bundle(); bundle.putString("message", "helloo"); Home tm = new Home(); tm.setArguments(bundle); fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.frag,tm).commit(); getSupportActionBar().setTitle("Home"); item.setChecked(true); drawerLayout.closeDrawers(); 

在片段中接收的代码

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { String myValue = getArguments().getString("message"); Toast.makeText(getActivity(), myValue, Toast.LENGTH_SHORT).show(); myview = inflater.inflate(R.layout.fragment_home, container, false); return myview; } 

请让我知道,如果有帮助!