android view.getId() 返回 -1 (android view.getId() returns -1)


問題描述

android view.getId() 返回 ‑1 (android view.getId() returns ‑1)

I need to change the text for a range of header cells in the data table. In order to achieve that, I would need to retrieve and store the view ids assigned to those cells, so they can be used later to identify those cell views. However, when I try to get an ID for the just inflated cell view, it always returns ‑1.

Here is my sample code:

@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);

        }  
    }
...     
}

The converView.getId() in the code above returns ‑1, despite the fact that the view id has already been assigned and is viewable during the code debugging. For example, I can see the following during debug: converView= LinearLayout (id= 830042440680)

Any idea why I am getting ‑1 (= NO_ID) in the above code ?

‑‑‑‑‑

參考解法

方法 1:

From the Android LayoutInflater documentation:

  

Inflate a new view hierarchy from the specified xml resource.

So when you call

converView = inflater.inflate(getLayoutResource(row, column), parent, false);

converView is just create by your layout inflater and have no ID. You should set ID manually like this

converView.setId(YOUR_GENERATED_ID);

(by Mario Ss.maks)

參考文件

  1. android view.getId() returns ‑1 (CC BY‑SA 3.0/4.0)

#View #Android






相關問題

如何控制 addView 到佈局 (How to control addView to a layout)

ruby on rails 友誼以下節目總是我的名字 (ruby on rails friendship following shows always my name)

Мадэль, вызначаная ў выглядзе? (A model defined in a view?)

android view.getId() 返回 -1 (android view.getId() returns -1)

自定義屬性 select_year 助手或使用 javascript 滾動我自己 (custom attribute select_year helper or roll my own with javascript)

如何清理視圖對象? (How to clean view object?)

為什麼windowController是dealloc但子視圖不是dealloc (why the windowController is dealloc but the subview is not dealloc)

在 Waiting/Loading imageview 上禁用我的標籤欄和導航欄 (disable my Tabbar & Navigationbar of the screen on Waiting/Loading imageview)

DRYing rails 視圖:partial vs helper (DRYing rails view: partial vs helper)

在 SQL 中從 3 個視圖創建一個視圖 (Creating a view from 3 views in SQL)

.net core mvc:在區域上添加具有 crud 功能的控制器未正確生成代碼和鏈接 (.net core mvc: adding controller with crud functionality on area didn't generate code and link correctly)

為什麼segues不起作用?無法切換視圖 (Why segues does not work? can not switch view)







留言討論