- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经实现了一个抽屉导航。一切正常,除了我无法在选定状态下更改项目的背景。背景在按下时改变,但在释放时恢复正常。
在我的 xml 中,我将 state_pressed 和 state_selected 都设置为 color2,而 normal 是 color1。我在按下时获得 color2,但在释放时返回 color1。
因此,我检查了我的类以找出问题所在,发现 getSelectedItemPosition() 总是返回 -1,尽管位置返回正确(如下所述)。
有什么帮助吗?
编辑 1: 好的,我还添加了 getCheckedItemPosition() 方法,它会正确返回正确的位置。但是我的 ListView 背景没有改变,尽管我使用了 state_checked。
Log.d("postion",""+position); // THIS RETURNS AS EXPECTED, LET SAY 2 FOR 3RD ITEM
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
Log.d("Selected",""+mDrawerList.getSelectedItemPosition()); // THIS ALWAYS RETURNS -1
Log.d("Checked",""+mDrawerList.getCheckedItemPosition()); // THIS RETURNS CORRECTLY, e.g. 2
ListView :
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/col3"
android:dividerHeight="1dp"
android:listSelector="@drawable/menu_selector"
android:background="@color/col3"/>
菜单选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/menu_active" />
<item android:state_selected="true" android:drawable="@drawable/menu_active" />
<item android:state_checked="true" android:drawable="@drawable/menu_active" />
<item android:drawable="@drawable/menu_norm" />
</selector>
列表项
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/menu_selector">
<ImageView
android:id="@+id/icon"
android:layout_width="25dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:contentDescription="@string/desc_list_item_icon"
android:src="@drawable/ic_home"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/icon"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/white"
android:gravity="center_vertical"
android:paddingRight="40dp"/>
</RelativeLayout>
最佳答案
您正在尝试从 ListView 中获取所选项目的位置,即使没有选择任何项目。从 getSelectedItemPosition()
的文档中可以看出,如果没有选择任何项目,则返回 INVALID_POSITION
,即 -1
.
关于android - setSelection 不工作 - getSelectedItemPosition 总是返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20865551/
我读了文档,但不太明白...参数“animate”有什么用? 我唯一注意到的事情: public void onItemSelected(AdapterView parent, View view,
我想在点击时更改按钮的图像。我在应用程序中有一个问题,应用程序用户以"is"和“否”的格式给出了答案。为此,我拍摄了两个带有复选框空图像的按钮。我想更改按钮的图像在 checkbox_fill 如果它
还有其他人遇到过这个问题吗?如果您以编程方式将 UITableViewCell 的选定状态设置为 YES,则会将文本标签着色为黑色? [单元格集选择:是] 我似乎无法弄清楚这一点。我希望它能突出显示单
我想保持一个单元格处于选中状态,并且仅在选择另一个单元格时才更改。在 tableView:cellForRowAtIndexPath: 我已经使用 [cell setSelected:YES] 设置了
应该给出什么类型的值.setSelectedButton才能在RadioButtonGroup构造中选择特定的Button。 我尝试过的: sap.ui.getCore().byId("RadioBu
我有一个带有2个背景图片的自定义UIButton: in Default State: default.png in Selected State: selected.png 在Xib文件中设置。 这
我有一个包含文本项目的图库。我可以使用 UI 或使用 setSelection(position) 以编程方式更改所选项目。但是,当我调用此方法时,有时项目背景不会更改为选定状态。我注意到,如果 se
我想通过单击另一个切换按钮来更改切换按钮的状态。我的代码不是那样工作的。该部分有问题: private void jToggleButton12ActionPerformed(java.awt.eve
我有一个 JFrame 表单,其中包含标签、文本字段、组合框和包含 2 个单选按钮的按钮组。在另一个表单中,我有一个 JTable,其中填充了有关学生的数据(学生 ID、姓名...),当我从表中选择一
我在我的网络应用程序中使用jCrop插件。但是,我试图预选图像上的一个区域,但这根本不起作用,并且没有预选任何区域。 这是我的代码: $('.position').live('click', func
我正在尝试加载我的首选项并更新微调器以显示之前保存的值。我以前从未使用过 spinner.setSelection 并不断收到 nullpointerexceptions。 String[] time
我正在为 GridView 使用 StickyGridHeader 库。我想根据应在 View 中显示的项目将 gridview 滚动到特定位置。 我已经尝试将 setSelection 用于我希望使
类(class) build protected Spinner tipSpinner; private ArrayAdapter adapterTip; 在 setContentView(R.lay
我有一个 ListView ,每当更新列表时,我都会强制滚动到列表底部。但是,在滚动到列表底部后,出于某种原因, ListView 会固定在该点,用户无法在列表上来回滚动以查看其他数据。 问题:在 s
我无法使用微调器 setSelection() 方法解决问题。我正在编写一个程序来保存数据库中的某种表中的数据。当用户打开一个程序时,它从数据库加载数据并添加 3 个空的“表”行,以便用户可以填充并保
我正在对话框中制作一个选择列表。 我已经完成了所有基本功能,比如添加了一个 setonitemclicklistener,但我想要的是默认设置列表的第一项,但是当我使用 setSelection(1)
我希望以编程方式使菜单上的特定项目被选中并显示,以便在按下 Enter 时执行相应的操作。不幸的是,我发现 JMenuItem.setSelected() 和 JPopupMenu.setSelect
我在应用程序中遇到了一个非常奇怪的崩溃。堆栈跟踪: java.lang.IndexOutOfBoundsException: charAt: -1 < 0 at android.text.Spanna
我有一个 ListActivity,它实现 onListItemClick() 并调用该类的 doSomething() 函数。后者包含 l.setSelection(position),其中 l 是
当匹配的编辑器被激活时,我试图选择一个树节点。 这是代码: private void selectNodeInTree(IEditorPart activatedEditor) { IEdito
我是一名优秀的程序员,十分优秀!