Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    26

    esercizio inviare sms da app con rubrica

    Sto provando a fare un app dove invio un sms selezionando il contatto dalla rubrica. Ho una funzione che mi prende il numero selezionato dal database della rubrica dello smartphone e me lo inserisce in un EditText. Il mio problema è passare questo EditText alla variabile per mandare l'sms. Allego il codice

    codice:
    package com.example.prova;
    
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.provider.ContactsContract.CommonDataKinds.Phone;
    import android.provider.ContactsContract.Contacts;
    import android.app.Activity;
    import android.content.Intent;
    import android.database.Cursor;
    import android.telephony.SmsManager;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    
    public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
          
        
            ((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    
                   
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                   
                    intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
                    startActivityForResult(intent, 1);                
                }
            });
            
            
        }
       //PRENDE DAL DB IL NUMERO; DEVO PASSARE LA STRINGA NUMBER
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            
            EditText num = (EditText)findViewById(R.id.numero);
            if (data != null) {
                Uri uri = data.getData();
    
    
                if (uri != null) {
                    Cursor c = null;
                    try {
                        c = getContentResolver().query(uri, new String[]{ 
                                    ContactsContract.CommonDataKinds.Phone.NUMBER,  
                                    ContactsContract.CommonDataKinds.Phone.TYPE },
                                null, null, null);
    
    
                        if (c != null && c.moveToFirst()) {
                            String number = c.getString(0); //QUESTA STRINGA
                            int type = c.getInt(1);
                          System.out.println(number);
                        }
                    } finally {
                        if (c != null) {
                            c.close();
                        }
                    }
                }
            }
            
        
        }
        //FUNZIONE PER SPEDIRE
        public void speed(String numero)
        {
            SmsManager smsManager = SmsManager.getDefault();
            String sendTo = //NUMBER;
            String message = //SMS;
            smsManager.sendTextMessage(sendTo, null, message, null, null);    
        }
        }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non capisco dove sia il problema... recuperi il numero dalla EditText come si fa per qualunque altra cosa:


    codice:
    public void speed(String numero)
    {
       // Ottengo la EditText
       EditText editText = (EditText) findViewById(R.id.numero);
    
       // Recupero il numero che c'è scritto dentro
       String numero = editText.getText().toString();
    
       // Fai quel che vuoi col numero
       ...
    }

    Però, sinceramnte, nel tuo codice io non vedo da nessuna parte l'impostazione del numero nella EditText. Cioè... tu ottieni il numero dal Cursor, lo memorizzi in una variabile String e di questa string... non ne fai nulla.

    Se il tuo intento è quello di visualizzarlo nella EditText dovrai usare il metodo setText() della EditText.


    Ciao.
    Ultima modifica di LeleFT; 26-02-2014 a 11:41
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    26
    Era la stanchezza di ieri che non mi faceva ragionare. Ho risolto stamattina grazie della risposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.