[英]Android - setOnItemClickListener() doesn't in listview
我无法通过不使用setOnItemClickListener()来解决问题。 (API minSdkVersion 19,targetSdkVersion 21,编译'com.android.support:appcompat-v7:21.0.3')
我试图放在不同的地方:
我设置listview的片段
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.gallery_tab_categories, container, false);
super.onCreate(savedInstanceState);
categoriesListView = (ListView) view.findViewById(R.id.listViewCategories);
categoriesListView.setAdapter( new GalleryCategoriesListAdapter( getActivity(), CATEGORIES_DATA ) );
//dbHandler = new ShoppingListDatabaseHandler(getActivity());
categoriesListView.setLongClickable(true);
final GalleryCategoriesListAdapter itemAdapter = new GalleryCategoriesListAdapter(getActivity(), CATEGORIES_DATA);
registerForContextMenu(categoriesListView);
categoriesListView.setAdapter(itemAdapter);
//categoriesListView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); //getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
categoriesListView.setOnItemClickListener(new AdapterView.setOnItemClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
clickedItemIndex = position;
return false;
}
});
//if (dbHandler.getItemsCount() != 0){CATEGORIES_DATA.addAll(dbHandler.getAllItems());
return view;
}
我的xml与listview
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:descendantFocusability="blocksDescendants"
android:gravity="center_vertical" >
<ListView
android:id="@+id/listViewCategories"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="false"
android:focusableInTouchMode="false" />
<!--android:focusable="false"-->
<!--android:clickable="false"-->
单个项目的xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:descendantFocusability="blocksDescendants"
android:gravity="center_vertical" >
<!--android:autoLink="all"-->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/itemCategoryName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:minHeight="?android:attr/listPreferredItemHeightSmall" />
<!--android:descendantFocusability="blocksDescendants"-->
<!--android:clickable="false"-->
<!--android:focusable="false"-->
<!--android:focusableInTouchMode="false"-->
<!--android:textIsSelectable="false"-->
也许我尝试了太多东西并且使我的代码不清楚
你必须删除它。
android: enfocable = "false"
android: focusableInTouchMode = "false"
//试试这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:gravity="center_vertical" >
<ListView
android:id="@+id/listViewCategories"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<LinearLayout/>
如果您要指定列表视图,事件发生在子项上,则不会单击项目
我解决了这个问题
我改变了这个片段:
categoriesListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.