Почему я не могу настроить TextView для отображения номера телефона входящего вызова?

У меня есть приложение, которое заменяет стандартный экран входящего вызова моим собственным дизайном. Когда кто-то звонит, появляется мой собственный экран. Это хорошо, но по какой-то причине мое приложение не отображает входящий номер телефона. Входящий номер телефона отображается в LogCat, но когда я пытаюсь установить для TextView эту строку, ничего не отображается. Вот код, который извлекает входящий номер телефона:

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

Как видите, строка «phoneNr» отображает входящий номер телефона в LogCat. Но когда я пытаюсь использовать его для установки текста TextView в классе (IncomingCallRecieved), который отображает мой собственный экран:

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

TextView остается пустым.

Любые предложения относительно того, почему это происходит?


person Community    schedule 26.04.2012    source источник


Ответы (2)


если phoneNr является целым числом, сделайте это как ""+phoneNr ,

также создание объекта new IncomingCallListener() не будет ссылаться на класс, который фактически получил число ... поэтому либо сделайте эту числовую переменную public static, либо напрямую используйте эту переменную, например classname.variablename

person MKJParekh    schedule 26.04.2012
comment
мой номер телефона представляет собой строку, и я получил ошибку-> W/dalvikvm(1486): threadid=1: поток завершается с необработанным исключением (группа=0x40015560) - person ; 26.04.2012

Нашел ответ! 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());

Теперь мой пользовательский экран показывает входящий номер телефона в текстовом виде.

person Community    schedule 27.04.2012