【问题标题】:Why cant I set TextView to display incoming call phone number?为什么我不能设置 TextView 显示来电电话号码?
【发布时间】:2012-04-26 08:45:27
【问题描述】:

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

关于为什么会发生这种情况的任何建议?

【问题讨论】:

    标签: android textview broadcastreceiver phone-call


    【解决方案1】:

    如果 phoneNr 是整数,像 ""+phoneNr 一样,

    也使new IncomingCallListener() 对象不会引用实际获得数字的类..所以要么使该数字变量public static 并直接使用该变量,如classname.variablename

    【讨论】:

    • 我的电话号码是一个字符串,我得到了错误-> W/dalvikvm(1486): threadid=1: thread exiting with uncaught exception (group=0x40015560)
    【解决方案2】:

    找到答案了! 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());
    

    现在我的自定义屏幕在文本视图中显示传入的电话号码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多