mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0, View arg1,
int position, long arg3) {
ImageView iv = (ImageView) arg1.findViewById(R.id.photo);
int right = iv.getRight();
if (mListPosX <= right) {
Contact contact = mAdapter.getItem(position).getContact();
Uri uri = ContactsContract.Contacts.getLookupUri(contact.getContactId(),
contact.getLookupKey());
ContactsContract.QuickContact.showQuickContact(mContext, iv , uri,
ContactsContract.QuickContact.MODE_SMALL, null);
mContactBadge = true;
} else {
Intent intent = new Intent(MainActivity.this,
ContactActivity.class);
intent.putExtra(ContactActivity.INTENT_CONTACT, mAdapter
.getItem(position).getContact().getContactId());
startActivity(intent);
}
}
});
mListView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mListPosX = (int) event.getX();
return false;
}
});
2011年7月18日月曜日
ListView の画像に ContactBadge を表示する
ListView に表示している画像がクリックされたら ContactBadge を表示させる。OnItemClickListener ではクリックされた位置がわからないので、OnTouchListener で一度受けて座標情報を保存し、OnItemClickListener でレンジをチェックして処理を分ける。以下の例では画像の表示エリアが左側なので、その右端で判定している。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿