android view.getId()返回-1

Mar*_*o S 7 android view

我需要更改数据表中一系列标题单元格的文本.
为了实现这一点,我需要检索并存储分配给这些单元格的视图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);

        }  
    }
...     
}
Run Code Online (Sandbox Code Playgroud)

尽管视图id已经被分配并且在代码调试期间可以查看,但上面代码中的converView.getId()返回-1.例如,我在调试期间可以看到以下内容:converView = LinearLayout(id = 830042440680)

知道为什么我在上面的代码中得到-1(= NO_ID)?

s.m*_*aks 10

从Android LayoutInflater文档:

从指定的xml资源中扩充新的视图层次结构.

所以当你打电话

converView = inflater.inflate(getLayoutResource(row, column), parent, false);
Run Code Online (Sandbox Code Playgroud)

converView只是由您的布局inflater创建,没有ID.您应该像这样手动设置ID

converView.setId(YOUR_GENERATED_ID);
Run Code Online (Sandbox Code Playgroud)