Can't get list of contacts phone book

Go To StackoverFlow.com

0

I have a function to show Dialog.

public Dialog sendSMS(){
        Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.dialogsms);
        dialog.setTitle("Send SMS");
        dialog.setCancelable(true);

        final Spinner spn = (Spinner)findViewById(R.id.spn_contatcs);
        final TextView tenso = (TextView)findViewById(R.id.txt_phone);

        final ArrayList<String> ten = new ArrayList<String>();
        final ArrayList<String> so = new ArrayList<String>();

        Cursor phones = _ketquatimkiem.this.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
        while (phones.moveToNext()){
                String phoneName=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                ten.add(phoneName);
                so.add(phoneNumber);
            }
        phones.close();

        ArrayAdapter<String> arrayAdapter_Contacts = new ArrayAdapter<String>(_ketquatimkiem.this,android.R.layout.simple_spinner_item,ten);
        arrayAdapter_Contacts.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spn.setAdapter(arrayAdapter_Contacts);
        spn.setOnItemSelectedListener(new OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
                tenso.setText("Phone Num:  "+so.get(arg2).toString());  
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });
        return dialog;
    }

Call in onCreate()

//when i click item of listview i get quickactiondialog    
listView.setOnItemClickListener(new OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
        final QuickActionDialog quickAction = new QuickActionDialog(arg1.getContext(), QuickActionDialog.VERTICAL);   
        //when click item of quickactiondialog id == sms i show dialog 
        quickAction.setOnActionItemClickListener(new QuickActionDialog.OnActionItemClickListener() {        
            @Override
            public void onItemClick(QuickActionDialog source, int pos, int actionId) {                                      
                if(actionId == ID_SMS){
                    Dialog dialog= sendSMS();
                    dialog.show();
                }
            }
        });

But i get error: E/AndroidRuntime(15562): java.lang.NullPointerException at spn.setAdapter(arrayAdapter_Contacts);

I test on real device ss gt-5570. Sorry i use english not good :(

2012-04-04 16:34
by HoangQBH


1

In your sendSMS() method you are accessing the layout of your Activity

final Spinner spn = (Spinner)findViewById(R.id.spn_contatcs);

That must be null because your Activity layout does not contain the Spinner. You have to do something like the following (see content.findViewById)

Dialog dialog = new Dialog(this);
View content = View.inflate(this, R.layout.dialogsms, null);
// your contact stuff
Spinner spn = (Spinner) content.findViewById(R.id.spn_contatcs);
spn.setAdapter(arrayAdapter_Contacts);
dialog.setContentView(content);
2012-04-04 16:51
by 207
Thank you.. i did solved my problem : - HoangQBH 2012-04-04 16:57
Ads