如何在android的列表视图中获取联系人列表



我想从手机检索所有联系人到我们自己的列表视图,但代码正在打开手机的联系人列表…这是我用来获取联系人的类的代码。我使用联系人按钮来触发事件并在我的列表视图中获取联系人,但是在*标记的行出现空指针异常…
请帮帮我。提前感谢

        public class BusinessCardActivity extends Activity  {
           private static final int PICK_CONTACT_REQUEST = 1;
          private final ContactAccessor mContactAccessor = ContactAccessor.getInstance();
            ImageButton contact_button;
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                //setContentView(R.layout.allbuttons);
                LinearLayout rlayout=new LinearLayout(this);
                rlayout.setOrientation(LinearLayout.VERTICAL);
                //RelativeLayout relativeLayout=       (RelativeLayout)findViewById(R.layout.main);
                //RelativeLayout relateLayout=(RelativeLayout)findViewById(R.layout.allbuttons);
                LayoutInflater layoutInflater = getLayoutInflater();

                rlayout.addView(layoutInflater.inflate(R.layout.main,null));
                rlayout.addView(layoutInflater.inflate(R.layout.allbuttons,null));
                //pickContact();
                // Install a click handler on the Pick Contact button
                contact_button=new ImageButton(getApplicationContext());
               *** contact_button = (ImageButton)findViewById(R.id.button_contacts);
                contact_button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        pickContact();
                    }
                });
                this.setContentView(rlayout);
            }

            protected void pickContact() {
                startActivityForResult(mContactAccessor.getPickContactIntent(), PICK_CONTACT_REQUEST);
            }

            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                if (requestCode == PICK_CONTACT_REQUEST && resultCode == RESULT_OK) {
                    loadContactInfo(data.getData());
                }
            }

            private void loadContactInfo(Uri contactUri) {

                AsyncTask<Uri, Void, ContactInfo> task = new AsyncTask<Uri, Void, ContactInfo>() {
                    @Override
                    protected ContactInfo doInBackground(Uri... uris) {
                        return mContactAccessor.loadContact(getContentResolver(), uris[0]);
                    }
                    @Override
                    protected void onPostExecute(ContactInfo result) {
                        bindView(result);
                    }
                };
                task.execute(contactUri);
            }

            protected void bindView(ContactInfo contactInfo) {
                TextView displayNameView = (TextView) findViewById(R.id.display_name_text_view);
                displayNameView.setText(contactInfo.getDisplayName());
                TextView phoneNumberView = (TextView)findViewById(R.id.phone_number_text_view);
                phoneNumberView.setText(contactInfo.getPhoneNumber());
            }
        }
    .

您需要在调用findViewbyId()之前调用setContentView(),否则您将无法从

找到您的视图布局。

相关内容

  • 没有找到相关文章

最新更新