我正在为我的视图使用自定义数组适配器和布局。自定义视图的列表项目中有不同的按钮,它们可以正常工作。但是,我想选择每个列表项并在长按时显示CAB。出于某种原因,当我在自定义视图中使用CAB时,CAB不会出现。但是,如果我取消注释该行以使用String Array适配器,那么它可以正常工作。
String[] ITEMS = new String[] { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6" };
datasource = new FavoritesDataSource(this);
datasource.open();
tempList = datasource.getAllFavorites();
myAdapter = new FavoritesArrayAdapter(this, tempList);
datasource.close();
ListView lv = getListView();
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
lv.setMultiChoiceModeListener(new ModeCallback());
setListAdapter(myAdapter);
//setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_activated_1, ITEMS));
我不确定我做错了什么。任何帮助将不胜感激。感谢
答案 0 :(得分:0)
经过数小时的调试后,问题变得非常简单。将自定义适配器与其中包含可单击按钮的自定义列表视图一起使用时,列表视图将禁用其单击“父列表视图项”的功能,从而导致无法选择或单击“父列表视图项”。在custom_list_view_item.xml中,您需要将此属性添加到父视图
android:descendantFocusability="blocksDescendants"
这将允许父ListView项可点击,您也可以单击ListView项中的子项。希望它有所帮助。