2012-04-26 2 views
1

표준 수신 전화 화면을 제 디자인으로 대체하는 앱이 있습니다. 누군가 전화를하면 내 사용자 정의 화면이 나타납니다. 이것은 좋은 일이지만, 어떤 이유로 든 내 앱이 수신 전화 번호를 표시하지 못합니다. 들어오는 전화 번호가 LogCat에 표시되지만 TextView를 해당 문자열로 설정하려고하면 아무 것도 표시되지 않습니다. 여기에 수신 전화 번호를 검색하는 코드는 다음과 같습니다전화 수신 전화 번호를 표시하도록 TextView를 설정하지 못하는 이유는 무엇입니까?

Bundle extras = intent.getExtras(); 
    phoneNr = extras.getString("incoming_number"); 
    Log.v(TAG, "phoneNr: " + phoneNr); 

당신이 볼 수 있듯이, 문자열 "phoneNr는"로그 캣에서 수신 전화 번호가 표시됩니다. 내 사용자 정의 화면을 표시하는 클래스 (IncomingCallRecieved)의 텍스트 뷰의 텍스트를 설정하는 데 사용하려고 때 :

IncomingCallListener ICL = new IncomingCallListener(); // class for BroadcastReciever 
textView_incomingNumber.setText(ICL.phoneNr); 

텍스트 뷰는 빈 남아있다.

왜 이런 일이 발생했는지에 대한 제안이 있으십니까? phoneNr 정수 경우

답변

2

new IncomingCallListener() 객체가 classname.variablename

처럼 그 변수를 실제로 number..so을 가지고 클래스를 참조하거나 변수 public static을 해당 번호를 확인하고 직접 사용하지 않을 것입니다 만들기, ""+phoneNr처럼 할
+0

/dalvikvm (1486) : threadid = 1 : catch되지 않은 예외로 스레드가 종료 됨 (그룹 = 0x40015560) – SpicyWeenie

0

답변을 찾았습니다!

intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER) 

이 전화 번호를 잡아 그것을 반환 : 내가 무슨 짓을 http://android-journey.blogspot.com/2010/01/android-braodcast-receivers.html

내가위한 문자열 방법을 만들었습니다. 내 사용자 정의 화면을 가지는 클래스에 그래서, 나는이 한 :

IncomingCallListener ICL = new IncomingCallListener(); 
textView_incomingNumber.setText(ICL.getPhoneNumber()); 

지금 내 사용자 지정 화면이 텍스트 뷰에서 수신 전화 번호를 보여줍니다

내 전화 번호는 문자열이고, 나는 에러 -> W 얻었다
관련 문제