我想在长按时绘制选择器,如图所示。当我长按一个项目时,CAB菜单被激活。但是单击后列表选择器指示器会关闭一次。我希望列表选择器处于活动状态,直到CAB菜单处于活动状态,允许多次选择。如果我双击,颜色应该会切换。当我单击它时,此代码就像闪烁一样工作。有谁面临类似的问题吗?有没有办法实现此功能?
具有多项选择的网格视图:
GridView在我的OnCreate中设置选择:
gridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
gridView.setMultiChoiceModeListener(new MultiChoiceModeListener());
这工作正常:
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
ImageView iv = (ImageView) v
.findViewById(R.id.imageview2);
ViewGroup gridChild = (ViewGroup) gridView
.getChildAt(position);
ViewGroup gridGrandChild = (ViewGroup) gridChild
.getChildAt(0);
ViewGroup gridGreatGrandChild = (ViewGroup) gridGrandChild
.getChildAt(0);
int childSize = gridGreatGrandChild.getChildCount();
if (iv.getId() == gridGreatGrandChild.getChildAt(1)
.getId()) {
if (iv.getVisibility() == 4)
iv.setVisibility(View.VISIBLE);
else
iv.setVisibility(View.INVISIBLE);
}
}});
我试图在激活CAB菜单后在MultiChoiceModeListener()类中实现相同的代码。在里面复制了相同的代码
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
}
方法但我无法访问视图组中的元素。但我可以访问整个GridView。但不是网格中的单个子对象。
这是我的gridview布局:
<GridView
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:columnWidth="190dp"
android:drawSelectorOnTop="true"
android:choiceMode="multipleChoice"
android:horizontalSpacing="3dp"
android:listSelector="@drawable/list_selector"
android:numColumns="auto_fit"
android:paddingRight="4dp"
android:stretchMode="spacingWidthUniform"
android:verticalSpacing="3dp" >
</GridView>
GridView中的每个项目都使用以下布局构建:
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>
<ImageView
android:id="@+id/imageview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageview"
android:layout_alignLeft="@+id/imageview"
android:layout_alignRight="@+id/imageview"
android:layout_alignTop="@+id/imageview"
android:visibility="invisible"
android:background="#76f9a49c"
>
</ImageView>
</RelativeLayout>
<ImageView
android:id="@+id/tagimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|right"
android:layout_marginRight="-4dp"
android:src="@drawable/tag"
android:visibility="invisible" />
<ImageView
android:id="@+id/countimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="5dp"
android:src="@drawable/dealcount_overlay"
android:visibility="invisible" />
<TextView
android:id="@+id/count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="11dp"
android:layout_marginRight="24dp"
android:text="100"
android:textColor="#fff"
android:visibility="invisible" >
</TextView>
<ProgressBar
android:id="@+id/progressbar"
style="@android:style/Widget.ProgressBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:visibility="visible" />
</FrameLayout>
<TextView
android:id="@+id/textView_nodata"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_below="@+id/frameLayout1"
android:layout_centerHorizontal="true"
android:text="No data available. Try different query!"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
</RelativeLayout>
以下是我的list_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/gridviewlistselector" android:state_focused="true" android:state_pressed="false"/>
<item android:state_focused="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_selected="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_pressed="true"><shape>
<solid android:color="#66000000" />
</shape></item>
<item android:state_enabled="false" android:state_focused="true"><shape>
<solid android:color="#66000000" />
</shape></item>
</selector>
如何实现该功能?我被困在这一点上。我在选择器上尝试了各种组合。但似乎没有什么对我有用。我需要提供任何其他详细信息吗?
这可以通过跟踪选定的项目并在适配器中更改它们的背景来实现。
我猜这篇文章对你帮助不大。
在网格项中填充。为网格适配器中的每个对象维护bean类,以跟踪对象被选中或未被选中。基于此值,您可以将网格项背景颜色acc更新为已选/未选状态。更新onitemclieck侦听器中的对象值并查看背景。
我不确定这是不是正确的解决方案,但我为我的列表项上的android:background
设置了这个:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime" >
<!-- I never see this one - the grid items are not focusable -->
<item android:state_pressed="false" android:state_focused="true" android:drawable="@drawable/list_focused" />
<!-- while pressed -->
<item android:state_pressed="true" android:drawable="@drawable/pressed_background" />
<!-- while selected in actionmode -->
<item android:state_activated="true" android:drawable="@color/pressed" />
<item android:drawable="@android:color/transparent" />
</selector>
我没有在网格模式上设置android: listSelector
属性。
我有一个列表视图,当我的活动开始时,我想要第一个项目将有背景,其他项目没有任何背景。之后,如果用户选择任何其他项目,则该特定项目的背景现在将为蓝色,其余部分将没有任何背景。请帮帮我。 My layout_effect.xml 设置默认背景的GetView代码 listview的任何我的onclickListner 我的列表视图xml 请帮帮我,我怎么才能解决这个问题,我从昨天开始就被困在里面了。
我正在使用接缝2.2.2。JBoss AS 5上的最终版本。我正在开发一个多页向导。在我的第一页上,用户将能够在文本区域上输入由新行分隔的多个业务名称。 提交页面后,系统解析输入值并将其拆分为字符串列表 然后要求用户从有效企业名称列表中选择进行注册 selectedbusinessName为String类型,而businessNameChoices为List类型 在提交页面时,作为企业名称提交的内
我指的是这个。单击“计划”时会显示“计划”活动,但始终选择第一个项目颜色(收藏夹)。它不会从收藏夹项目颜色更改明细表项目颜色。还有第三项(音乐)。我使用android:state\u checked而不是android:state\u enabled。“如果使用startActivity,则不会更改“收藏夹”项目颜色中的日程项目颜色。如果不更改,则会更改颜色。如何解决此颜色选择问题。 activi
这应该是一个匹配每个按钮的数字的游戏。将有12个不同的数字,数字将被设置为随机按钮(2个按钮将有相同的数字)。玩家必须单击第一个按钮,按钮将变为红色,如果玩家再次单击另一个按钮,它将检查它是否有相同的数字,如果是,则两个按钮都将保持红色。对于按钮,我使用按钮的网格模式。我将所有按钮设置为黑色,如果我单击按钮,它将改变其颜色为红色。按钮显示正确,所有按钮都工作正常,除了第一个按钮(左上角),它不会变
我有一个Facelets页面,其中包含
我有一个< code>GridView,其中有一堆使用自定义适配器填充的项目。在java中,网格视图被设置为< code > CHOICE _ MODE _ MULTIPLE _ MODAL ,我可以使用上下文操作栏来选择内容(所有这些都很好)。 我希望网格项在按下时高亮显示,在选择时有不同的高亮显示(正是您在ICS的Gallery应用程序中看到的行为)。 我有一个在网格视图XML中指定的选择器,