2016-07-08 3 views
3

호출 코드를 "추가"잃는다 분실 - 위 코드는 bundle.getInt()을 호출 할 때 NPE를 던집니다. 내가 놓친 분명 뭔가가있을거야활동은 번들에서 (서비스로 실행)

은 ...

+4

사용'번들 intentBundle = getIntent() getExtra(). '가 아니라 내가 사용 결코에서 onCreate 인수 –

+0

에서 하나의 번들, 인수 onCreate에서 가져 왔지만 거기까지는 getIntent()가 있습니다. getExtra(); 메서드를 사용하여 번들을 가져옵니다. 바로';.. – Bobby

답변

4

번들은 그 목적을 위해 아닙니다.

void onCreate (Bundle savedInstanceState) 

per docs로서

번들 : 활성 이전에 종료 인 후 다시 초기화되는 경우,이 번들이 최근 onSaveInstanceState (번들)에 을 제공하는 데이터를 포함한다. 주 : 그렇지 않으면 널입니다. 당신은 엑스트라를 얻을 필요가있는 경우

당신이 호출 할 필요가 :

Bundle extras = getIntent().getExtra(); 

을하고 당신이 당신의 값을 얻기 위해 시도 할 수 있습니다 : 또는

int myVal = extras.getInt(key); 

을 당신이 사용하려고 할 수 있습니다

int myVal = getIntent().getIntExtra(key, defaultVal); 
+1

덕분에, 내가 잘못에 주어진 번들'onCreate' 내가 의도로 보낸 번들이라고 가정했다. – fadedbee

0

당신은 getIntent().getInt("text_seq")를 사용하여 시도? 당신이 읽고있는

+2

당신은'getIntent() getExtra()의 getInt ("text_seq")을 의미? – Bobby

0

처럼 번들을 얻을
@Override 
protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    Bundle intentBundle = getIntent().getExtra(); 
    Log.d(TAG, "" + intentBundle.getExtra(“text_seq")) 
} 
0

사용중인 번들은 이며 자세한 내용은 here입니다.

는 무엇을 사용해야하는 것은 이것이다 : 당신은 또한이 같은 개별 항목을 얻을 수있는 getIntent().getExtra()

에서 그것을 얻을 필요가 있도록, Intent 엑스트라에 번들을 추가하기 때문에

Bundle intentBundle = getIntent().getExtra(); 

:

getIntent().getIntExtra("text_seq", defaultValToReturn);