Italian Inseire su una editext un numero di telefono dalla rubrica

fifiddu70

Well-Known Member
Licensed User
Longtime User
qualcuno sa dirmi come faccio ad inserire su una editext il numero di telefono della rubrica del telefono?
posto un pezzo di codice:
B4X:
Sub btnContacts_Click
 Dim PhoneContacts As Contacts
   Dim ContactsList, ListOfNames As List
    ContactsList = PhoneContacts.GetAll
    ListOfNames.Initialize
       For i = 0 To ContactsList.Size - 1
        Dim c As Contact
        c = ContactsList.Get(i)
        If c.DisplayName.IndexOf("@") = -1 Then 
            ListOfNames.Add(c.DisplayName)
        End If
   Next
    EmergencyContacts=InputMultiList(ListOfNames,"Contacts")
 
End Sub
premendo il pulsante in questione, si ottiene la lista della rubrica telefonica, ma non sono riuscito a far apparire su una editex del mio programma, l'elemento selezionato ma non come nome ma come numero di telefono.
quindi premesso che editext si chiamerà: txtNumber
come inserisco il numero di telefono appena scelto dalla lista?
 
D

Deleted member 103

Guest
Ciao fifiddu70,

con questa modifica funziona.

B4X:
Sub btnContacts_Click
   Dim c As Contact
   Dim PhoneContacts As Contacts
   Dim ContactsList, ListOfNames As List
   ContactsList = PhoneContacts.GetAll
   ListOfNames.Initialize
   For i = 0 To ContactsList.Size - 1
      c = ContactsList.Get(i)
      If c.DisplayName.IndexOf("@") = -1 Then 
         ListOfNames.Add(c.DisplayName)
      End If
   Next
   Dim EmergencyContacts As List
   EmergencyContacts=InputMultiList(ListOfNames,"Contacts")

   If EmergencyContacts.Size>0 Then
      c = ContactsList.Get(EmergencyContacts.Get(0))

      txtNumber.Text=c.PhoneNumber
   End If
 
End Sub

Ciao,
Filippo
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
ora vorrei risolvere il problema dei messaggi ricevuti, vorrei che i messaggi ricevuti vengano visualizzati sul mio programma, quindi su una editext chiamata: txtTesto.text, visualizzare il messaggio, mentre sulla txtnumero visualizzare il numero del messaggio ricevuto.
so che devo utilizzare smsintercept ma non so come fare :(
pensi di potermi aiutare?.
ho dichiarato:
B4X:
Dim si As SmsInterceptor
   si.Initialize2("SI", 999)

Sub SI_MessageReceived (From As String, Body As String) As Boolean
    ToastMessageShow(From, True)
    Return True
End Sub
dove metto
txtnumero.text
txttesto.text
?????????????? sapresti dirmi come fare?
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
Fatto, ci sono riuscito, sono riuscito a far funzionare la ricezione degli sms sulla editext, miiiiiiiii sono contentooooo !:sign0142:
 

spiderweb

Member
Licensed User
Longtime User
Ciao fifiddu70,

con questa modifica funziona.

B4X:
Sub btnContacts_Click
   Dim c As Contact
   Dim PhoneContacts As Contacts
   Dim ContactsList, ListOfNames As List
   ContactsList = PhoneContacts.GetAll
   ListOfNames.Initialize
   For i = 0 To ContactsList.Size - 1
      c = ContactsList.Get(i)
      If c.DisplayName.IndexOf("@") = -1 Then 
         ListOfNames.Add(c.DisplayName)
      End If
   Next
   Dim EmergencyContacts As List
   EmergencyContacts=InputMultiList(ListOfNames,"Contacts")

   If EmergencyContacts.Size>0 Then
      c = ContactsList.Get(EmergencyContacts.Get(0))

      txtNumber.Text=c.PhoneNumber
   End If
 
End Sub

Ciao,
Filippo
Avendo la stessa esigenza di Fifiddu70 ho provato anch'io ad utilizzare il codice da te postato, ma non mi restituisce i valori corretti; seleziono un contatto dalla lista ma mi restituisce il numero di un altro!!! A cosa può essere dovuto? ...Premetto che per testare il codice ho fatto un "volgare" copia e incolla di questo codice utilizzando un bottone e una edittext
 
D

Deleted member 103

Guest
Ciao spiderweb,

controlla se è il nome che hai selezionato è quello giusto, perchè può darsi che ci sia un doppione con un nummer diverso.

B4X:
Sub btnContacts_Click
    Dim c As Contact
    Dim PhoneContacts As Contacts
    Dim ContactsList, ListOfNames As List
    ContactsList = PhoneContacts.GetAll
    ListOfNames.Initialize
    For i = 0 To ContactsList.Size - 1
        c = ContactsList.Get(i)
        If c.DisplayName.IndexOf("@") = -1 Then 
            ListOfNames.Add(c.DisplayName)
        End If
    Next
    Dim EmergencyContacts As List
    EmergencyContacts=InputMultiList(ListOfNames,"Contacts")

    If EmergencyContacts.Size>0 Then
        c = ContactsList.Get(EmergencyContacts.Get(0))

        txtNumber.Text=c.PhoneNumber
      
      'Controlla se è il Nome che hai selezionato!
      Log(c.DisplayName)
      Log(c.PhoneNumber)
    End If
 
End Sub
 

spiderweb

Member
Licensed User
Longtime User
Ciao spiderweb,

controlla se è il nome che hai selezionato è quello giusto, perchè può darsi che ci sia un doppione con un nummer diverso.

B4X:
Sub btnContacts_Click
    Dim c As Contact
    Dim PhoneContacts As Contacts
    Dim ContactsList, ListOfNames As List
    ContactsList = PhoneContacts.GetAll
    ListOfNames.Initialize
    For i = 0 To ContactsList.Size - 1
        c = ContactsList.Get(i)
        If c.DisplayName.IndexOf("@") = -1 Then 
            ListOfNames.Add(c.DisplayName)
        End If
    Next
    Dim EmergencyContacts As List
    EmergencyContacts=InputMultiList(ListOfNames,"Contacts")

    If EmergencyContacts.Size>0 Then
        c = ContactsList.Get(EmergencyContacts.Get(0))

        txtNumber.Text=c.PhoneNumber
      
      'Controlla se è il Nome che hai selezionato!
      Log(c.DisplayName)
      Log(c.PhoneNumber)
    End If
 
End Sub
Ciao Filippo e innanzitutto grazie per la tua rapida risposta.
Ho riprovato a inserire il codice ma non funziona ancora. A scanso di equivoci ho provato anche a creare dei contatti sul dispositivo virtuale(inserendo nome e numero di cellulare negli appositi campi ed evitando di inserire i doppi numeri); Facendo partire l'applicazione la lista viene correttamente visualizzata con tutti i nominativi, ma sulla edittext il numero o non viene proprio visualizzato oppure ne viene visualizzato uno errato. Ti ripeto che sto usando esattamente il tuo codice senza cambiare neanche una virgola e impostando addirittura il pulsante e la edittext con gli stessi nomi. E' troppo chiederti se puoi ritestarlo anche tu?
Grazie
 
Top