我有一个应用程序,用我自己的设计替换标准来电屏幕。当有人打电话时,我的自定义屏幕会弹出。这很好,但由于某种原因,我的应用程序无法显示传入的电话号码。传入的电话号码显示在LogCat中,但是当我尝试将TextView设置为该字符串时,没有显示任何内容。以下是检索传入电话号码的代码:
Bundle extras = intent.getExtras();
phoneNr = extras.getString("incoming_number");
Log.v(TAG, "phoneNr: " + phoneNr);
如您所见,字符串“phoneNr”在LogCat中显示传入的电话号码。但是,当我尝试使用它来设置显示我的自定义屏幕的类(IncomingCallRecieved)中TextView的文本时:
IncomingCallListener ICL = new IncomingCallListener(); // class for BroadcastReciever
textView_incomingNumber.setText(ICL.phoneNr);
TextView保持空白。
有关为何发生这种情况的任何建议?
答案 0 :(得分:2)
如果phoneNr是整数,请执行""+phoneNr
,
同样使new IncomingCallListener()
对象不会引用实际得到该数字的类。所以要么使该数字变量public static
并直接使用该变量,如classname.variablename
答案 1 :(得分:0)
找到答案! http://android-journey.blogspot.com/2010/01/android-braodcast-receivers.html
我做的是我为:
创建了一个String方法 intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)
抓住电话号码并将其退回。所以在使用我的自定义屏幕的课程中,我这样做了:
IncomingCallListener ICL = new IncomingCallListener();
textView_incomingNumber.setText(ICL.getPhoneNumber());
现在,我的自定义屏幕会在textview中显示来电号码