我使用listview
实现了android ListActivity
。在这里我遇到的问题是,当我点击列表项时,当闪光颜色也没有出现时,没有执行任何动作,即橙色。所以你对我的问题的这个答案有任何想法。
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT)
.show();
}
我还将此代码放入Main ListActivity。
答案 0 :(得分:113)
您必须注意的第一件事是,只要您的ImageButtons
元素中存在按钮或ListView
等可点击元素,他们就会控制点击事件。所以你的ListView
没有机会接受点击事件。
您只需将focusable
或Button
设置为ListView中的ImageButton
或onListItemClick
即可。但是它们仍可以正常工作,而且ListView的 <Button android:id="@+id/textsize_increaser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/back_button"
android:focusable="false"
android:text=" A + "/>
也可以正常工作。
试试这个,
android:focusable="false"
这里我添加了这个{{1}},它运行正常。试试吧。
答案 1 :(得分:9)
您是否已将ListView的选择模式设置为SINGLE:
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
如果您在列表项中有任何可点击的imageview或textview或按钮,那么使它们无法调焦(在Adapter类中):
yourButton.setFocusable(false);
yourButton.setFocusableInTouchMode(false);
答案 2 :(得分:4)
您使用的是自定义适配器吗?并使用按钮或任何视图将列表列表视图焦点作为子项进行膨胀布局,然后它将无法正常工作。确保设置
android:focusable="false"
到xml文件中的这种视图。希望这对你有用。
答案 3 :(得分:4)
在listactivity java文件中设置它
listview1.setFocusable(false);
答案 4 :(得分:1)
Eclipse建议我在布局xml中将textIsSelectable="true"
添加到我的TextViews中,用于列表视图。
好吧,如果你想点击列表中的项目,那么就不应该添加这些标签。
答案 5 :(得分:1)
确保你
如果上面任何一个地方出现滚动视图,请将其删除
答案 6 :(得分:0)
请参阅此帖子以获得解决方案:
Click is not working on the Listitem Listview android
View v = parent.getChildAt(position);
parent.requestChildFocus(v,view);
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row"));
int count = parent.getChildCount();
for(int i=0; i<count; i++)
{
if(i!=position)
{
v = parent.getChildAt(i);
v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row));
}
}
答案 7 :(得分:0)
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int pos,
long id) {
Toast.makeText(v.getContext(), exm.get(pos).getDefinition(),
Toast.LENGTH_SHORT).show();
}
});
答案 8 :(得分:0)
实际上有一个参数可以防止子视图获得焦点,只需在父布局中添加以下内容:
android:descendantFocusability="blocksDescendants"
正如文档所述:
ViewGroup将阻止其后代获得焦点。
答案 9 :(得分:0)
listItemButton.setFocusable(false);
listItemButton.setFocusableInTouchMode(false);
在适配器中设置以上内容。它不适用于 XML