我为我的ListView
实现了一个扩展BaseAdapter的适配器。
我的列表项包含按钮,每个按钮都有OnClickListener。
为每个项目添加OnclickLister后,列表的OnItemClickListener停止工作。
如何解决?
代码
在我的活动中 -
ListView lv = (ListView) findViewById(R.id.list);
lv.setTextFilterEnabled(true);
lv.setItemsCanFocus(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String debString = "position = " + position + " id = " + id;
Log.d(TAG, debString);
Toast.makeText(getApplicationContext(), debString, Toast.LENGTH_SHORT).show();
Contact selectedContact = dataVector.elementAt(position);
Bundle bundle = new Bundle();
bundle.putInt(Constants.POSITION, position);
bundle.putString(Constants.NAME, selectedContact.getName());
bundle.putString(Constants.MDN, selectedContact.getMdn());
bundle.putString(Constants.STATUS, selectedContact.getStatus());
String filePath = null;
if(contactsImagesProperties != null || !Utils.isNullOrEmpty((String) contactsImagesProperties.get(selectedContact.getMdn()))) {
filePath = (String) contactsImagesProperties.get(selectedContact.getMdn());
}
bundle.putString(Constants.IMAGE, filePath);
Intent intent = new Intent(context, ChildDisplayActivity.class);
intent.putExtras(bundle);
getParent().startActivityForResult(intent, 10);
}
在getView()中的myBaseAdapter中
bitmap = Bitmap.createScaledBitmap(bitmap, Constants.CHILD_ICON_WIDTH, Constants.CHILD_ICON_HEIGHT, false);
imageView.setImageBitmap(bitmap);
statusView.setText(Constants.StatusCodeHandler.getStatusDesc(dataVector.elementAt(position).getStatus(), context));
ImageButton imageButton = (ImageButton) view.findViewById(viewIds[3]);
imageButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ACTION, Constants.CONTACT_LOCATION_CODE);
bundle.putString(Constants.MDN, dataVector.elementAt(position).getMdn());
MainActivity.bundle = bundle;
TabActivity mainActivity = (TabActivity) ((UsersListActivity)context).getParent().getParent();
TabHost tabHost = mainActivity.getTabHost();
tabHost.setCurrentTab(Constants.MAP_TAB_INDEX);
}
});
myListRaw.xml中的-
<ImageView android:src="@drawable/icon"
android:id="@+id/childListImageView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:layout_alignParentRight="true"/>
<TextView android:id="@+id/childListTextView"
android:layout_marginRight="5dp"
android:layout_width="wrap_content"
android:text="TextView"
android:layout_height="wrap_content"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:layout_toLeftOf="@+id/childListImageView"
android:layout_centerVertical="true"/>
<TextView android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Child Status"
android:id="@+id/childListStatus"
android:layout_width="wrap_content"
android:layout_toLeftOf="@+id/childListTextView"
android:layout_marginRight="15dp"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
android:layout_centerVertical="true"/>
<ImageButton android:id="@+id/childListButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Loc"
android:layout_marginTop="5dp"
android:layout_alignParentLeft="true"
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"/>
答案 0 :(得分:7)
如果将行的部分设置为可聚焦(android:focusable =“true”),则为ListView设置的OnItemClickListener不响应。看看