为什么我不能设置TextView来显示来电号码?

时间:2012-04-26 08:45:27

标签: android textview broadcastreceiver phone-call

我有一个应用程序,用我自己的设计替换标准来电屏幕。当有人打电话时,我的自定义屏幕会弹出。这很好,但由于某种原因,我的应用程序无法显示传入的电话号码。传入的电话号码显示在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保持空白。

有关为何发生这种情况的任何建议?

2 个答案:

答案 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中显示来电号码