2012-07-05 3 views
2

미리 감사드립니다. 나는 점점 오전 Log.d("me",getIntent().toString());값을 안드로이드의 의도에서 얻으십시오

를 인쇄 할 때 : 나는 "날엔"하지만 무엇입니까 NullPointer 예외와 관련된 값을 가져 오기 위해 노력하고

Intent { act=android.intent.action.CALL_PRIVILEGED dat=tel:888 flg=0x13800000 cmp=com.ninetology.freecall.two/.CallFinalActivity }

.

//the code I am using is 
getIntent().getStringExtra("dat"); // no use 
//i tried 
getIntent().getExtras("dat").toString(); // NullPointer exception 

위의 코드에서 "tel"를 키로 사용해 보았습니다. 모든

+1

데이터 값을 설정하는 put 명령은 무엇입니까? –

+0

댓글을 달았습니다. 하지만 내 응용 프로그램에 해당 데이터가 필요합니다. 그걸 어떻게 실현할 수 있습니까? –

+0

Thnks M Mohsin Naeem이 (가) 의견을 말하면서, 수동으로 아무것도 넣지 않을 것입니다. 그것은 기본 다이얼러에서 가져온 데이터입니다. –

답변

4

이 문제는 잘못된 것 같습니다.

  1. getExtras() 기능은 사용자가 데이터를 추출 할 수 있습니다 번들이 아닌 특정 문자열을 반환하는 함수를 반환합니다.

  2. dat은 인쇄 된 데이터에서 볼 수있는 문자열 값이 아닙니다. 그것은

당신이해야하고 난 당신이 데이터를 얻을 수있을 거라고 확신으로 해석하려고하는 Uri입니다. 방금 활동을

intent.putExtra("dat", value); // 값을 시작하기 전에 아래의 코드를 추가 의도로 데이터를 전달할 때

public void onCreate(Bundle b) { //mistyped 
    super.onCreate(b); 
    Uri data = getIntent().getData(); 
    // OR USE THIS 
    String data = getIntent().getDataString(); 
    // DO STUFF 
} 
1

먼저 로그에 점점 의도 값으로 개체가에서 그 필요하지 문자열 ..

그래서 그것의 더 나은 단지는 아닌 , 등을 확인,

Bundle bundle = getIntent().getExtras(); 

if(bundle ! = null) 
{ 
    // Now check you bundle object which has a values or not 
} 
else 
{ 
    // 1. get data in form of Uri 
    Uri data = getIntent().getData(); 

    // 2. OR get string of Uri 
    String dataString = getIntent().getDataString(); 

    // 3. Or split the data string 

    // The logic from this part may be different on your requirement.. I only suggests you to get data from string.. (Actual logic may different on your case) 
    String data = getIntent().toString(); 
    data = data.subString(data.indexOf(":"), data.indexOf("flg")-1); 
    Log.e("tel:", data); 
} 
+0

추악합니다. 하위 문자열 호출 대신에 엑스트라에 저장된 위치를 파악할 방법이 없습니까? – RvdK

+0

@PoweRoy - 예, 못생긴 방법이지만 값을 정의하지 않은 인 텐트에서 데이터를 가져 오려고합니다. 그래서 이것은 이것의 선택이 될 수 있습니다. 논리는 요구 사항을 변경해야합니다. – user370305

+0

또한 "tel :"섹션 뒤에 "flg"가없는 경우 아마 false 값을 보냅니다 ... – herom

0

은 = 원하는 값을 보낼

+0

고마워. getIntent(). getExtras() 자체가 null의 경우, getIntent()에 nullpointer 예외가 슬로우됩니다. getExtras(). get ("dat"); ...... –

0

getIntent().getExtras().get("dat");을 시도

다른 액티비티에서 동일한 값을 가져 오려면 다음을 수행하십시오.

Bundle bundle=getIntent().getExtras(); 
if(bundle!=null){ 
     String string=bundle.getString("dat"); 
     } 

이렇게하면 null 포인터 예외가 나타나지 않고 도움이됩니다.