5

我想在左侧(主)侧使用带有 GridView 的 Master-Detail-Flow。根据文档GridView有一个setItemChecked(position, value)在 API 级别 1 中添加的方法。但是 Eclipse 声明该方法需要 API 级别 11。

哪一个是真的?如果我想在我的 GridView 中检查项目,我是否需要自己实现逻辑(带有背景更改等)?

4

2 回答 2

5

根据我的经验,官方文档是错误的。

AbsListView.setItemChecked(position, value)仅从 HoneyComb (API 11) 开始存在。令人困惑的是,ListView.setItemChecked(position, value)API 1 确实存在,而GridView.setItemChecked(position, value)没有。我认为这只是在 API 11 中修复的糟糕的 API 设计。

可能是由于文档生成器的限制,因为方法在继承链中向上移动到AbsListViewAPI 11 中。方法 inAbsListView应标记为Added in API level 11,而方法 inListView应标记为Added in API level 1.

我没有使用它,但有人创建了一个GridViewCompat来解决这个问题。 https://github.com/paramvir-b/AndroidGridViewCompatLib

于 2013-08-01T01:26:46.700 回答
0

我相信文档是错误的。在模拟器上进行测试,该方法在 API 级别 8 上不可用。据我所知,这适用于 AbsListView setItemChecked() 方法的所有扩展(ListView 等)。我认为可以安全地假设它仅适用于 API 级别 11+

于 2013-06-07T02:14:54.463 回答