2017-03-12 11 views
0

連絡先をlistに表示しようとしています。私が何をしても、それはうまくいかない。致命的な例外:メイン(連絡先リスト)

誰かがこれを手伝ってくれますか?

P.Sここは新しいです。だから私が何か悪いことをしているかどうか教えてください。

public class MainActivity extends AppCompatActivity 
{ 


ArrayList<String> name = new ArrayList<String>(); 

ListView list; 

Cursor phones; 


@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    list = (ListView)findViewById(R.id.list); 



    phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); 
    while(phones.moveToNext()) 
    { 
     String contactName = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
     name.add(contactName); 
    } 
    phones.close(); 

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, name); 

    list.setAdapter(adapter); 

} 
} 
+0

例外スタックトレースを追加 –

答えて

0

電話連絡先を取得するための実行時のアクセス許可を求めていないようです。 Android M以上では、実行時に携帯電話の連絡先を読む許可を求める必要があります。

チェックhttps://developer.android.com/training/permissions/requesting.html

はまた、あなたがGoogleのライブラリを使用することができますpermissions-ランタイムを要求する方法については、このリンク - 要求権限にhttps://github.com/googlesamples/easypermissionsを。

+0

私はアプリの権限で電話オプションをチェックしませんでした。助けてくれてありがとう。乾杯! –

関連する問題