【发布时间】:2011-10-20 05:06:07
【问题描述】:
我知道有很多主题或多或少相同的主题,但没有一个涵盖我的情况:
我正在使用我的自定义行使用自定义 CursorAdapter 填充我的 ListView。 ListView 有两种状态:第一种状态仅包含行中的文本;第二种状态的每一行都有一个删除按钮。两种状态之间的切换是视图底部的一个按钮。
我试图实现的是:在第一种状态下,当我点击行时,屏幕应该切换到另一个视图。在第二种状态下,当我单击删除按钮时,应从数据库中删除选定的行,应重新填充 ListView,如果我按下除删除按钮以外的行的任何其他部分,则不会发生任何事情。
我知道如何删除一个项目并在之后重新填充 ListView,并且我知道如何在单击第一个状态的行时切换到另一个视图;但我无法将两者结合起来。我正在使用以下方法来获取行的 id 和位置:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Code goes in here either for deleting or switching into another view
}
我尝试使用一些 if 语句来获取单击删除按钮或单击行的条件,但它不起作用。
第一个问题很明显:我怎样才能让它发挥作用?
第二个问题是:在第二个状态下,当按下除删除按钮以外的行的任何部分时,屏幕会切换到另一个视图。我怎样才能防止这种情况?我尝试将行的 .setClickable、.setPressed、.setSelected 属性设置为 false,但没有帮助。
感谢您提前回复。
【问题讨论】: