2017-05-11 3 views
0

フラグメントからmainActivityにStringを送信しようとしています。私はこの権利をしているのかどうかはわかりませんが、ユーザーがボタンを押した後、新しいmainActivity Intentを開始します。 フラグメントから送信されたStringメッセージがない場合、mainActivityの代わりにフラグメントをロードする必要があります。 は、主な活動の開始時に、私は、メッセージがnullではないが、私はI'amはnullオブジェクトにオブジェクトがヌルかどうかを調べる

れるjava.langにアクセスしようとしているため、エラーとアプリケーションが起動したくない得るかどうかを確認してみました。 RuntimeException:アクティビティを開始できませんComponentInfo {com.example.audriusalekna.camerapht/com.example.audriusalekna.camerapht.MainActivity}:java.lang.NullPointerException:仮想メソッド 'java.lang.String android.os.Bundleを呼び出しようとしています。 nullオブジェクト参照のgetString(java.lang.String) '

これを行うには別のアプローチをとるべきですか?ここで

私のコードは、内部のバンドルがあまりにもNULLでない場合はelseが扱うべきではありません

if(intent!=null && intent.getExtras() != null && intent.getExtras().getString("tagsText") == null){ 

意図自体がNULLでないかどうかを確認する必要がある、と

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); 
    } 

答えて

1

です彼らのほとんどが1つであるので、インテントまたはエキストラはヌルです

0

ここに:

intent.getExtras().getString() == null 

「1つのレベルが深すぎます」をチェックしています。

intent.getExtras() == null 

この問題を回避するには、ここをクリックしてください。

関連する問題