2017-05-11 124 views
0

我一直在嘗試從一個片段向我的mainActivity發送字符串。我不知道我是否做得對,但是我在用戶按下片段中的按鈕後開始新的mainActivity Intent。 我想要做的是當應用程序打開片段需要加載,而不是mainActivity,如果沒有從片段發送的字符串消息。 在我試圖檢查,如果消息不爲空,但我得到一個錯誤,應用程序不希望啓動,因爲我'嘗試訪問空對象檢查對象是否爲空

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對象參考

我應該採取不同的方法嗎?

這裏是我的代碼

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

你需要檢查的意圖本身不是空的,如果它裏面的包是不是NULL太

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

else不應與處理intent或額外成員主要是其中之一爲空

0

此處:

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

您正在檢查「單層太深」。您需要:

intent.getExtras() == null 

爲了避免這個問題在這裏!