找到您的视图布局。
我想从手机检索所有联系人到我们自己的列表视图,但代码正在打开手机的联系人列表…这是我用来获取联系人的类的代码。我使用联系人按钮来触发事件并在我的列表视图中获取联系人,但是在*标记的行出现空指针异常…
请帮帮我。提前感谢
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()
,否则您将无法从