我需要更改数据表中一系列标题单元格的文本
为了实现这一点,我需要检索并存储分配给这些单元格的视图ID,以便稍后可以使用它们来识别这些单元格视图。
但是,当我尝试获取刚刚膨胀的单元格视图的ID时,它总是返回-1。
以下是我的示例代码:
@Override
public View getView(final int row, final int column, View converView, ViewGroup parent) {
if (converView == null) {
converView = inflater.inflate(getLayoutResource(row, column), parent, false);
if (row == -1){
int viewId = converView.getId();
setHeaderId(viewId, column+1);
}
}
...
}
上面代码中的converView.getId()返回-1,尽管视图id已经分配并且在代码调试期间可以查看。例如,我在调试期间可以看到以下内容: converView = LinearLayout(id = 830042440680)
知道为什么我在上面的代码中得到-1(= NO_ID)?
答案 0 :(得分:10)
从Android LayoutInflater文档:
从指定的xml资源中扩充新的视图层次结构。
所以当你打电话
converView = inflater.inflate(getLayoutResource(row, column), parent, false);
converView只是由您的布局inflater创建,没有ID。您应该像这样手动设置ID
converView.setId(YOUR_GENERATED_ID);