簡體   English   中英

如何從編程線性布局項中獲取 id

[英]How to get the id from programmatically linear layout item

我不知道如何在以編程方式創建的線性布局中獲取項目的 id。 我想“捕捉”按鈕的正確 id 並將其與字段相關聯。

LinearLayout layout = (LinearLayout)  findViewById(R.id.content_doodle_linearlayout3);
    layout.setOrientation(LinearLayout.VERTICAL);  


    String[] data = {"1","2","3","4"};
    String[] users = {"1","2","3"};


 for (int i = 0; i < users.length; i++) {
        row = new LinearLayout(this);
        row.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

        text = new TextView(this);
        text.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
        text.setText("Name " + (i));
        text.setId(1000 + i);

        row.addView(text);
        int ergebnis = -1;
        for (int j = 0; j < daten.length; j++) {
            CheckBox btnTag = new CheckBox(this);
            btnTag.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));
            //btnTag.setText("Button " + (j + 1 + (i * 4)));
            btnTag.setId(j + 1 + (i * 4));

            row.addView(btnTag);
        }

        layout.addView(row);
    }

無法找到按鈕,因為“沒有”(R.id.{XML-Field})。

如何從特定行“找到”單擊的按鈕。 我必須為每個按鈕編碼嗎?

您可以通過這種方式為布局中的每個子視圖設置指定的標簽:

View childView = ...;
childView.setTag("Some tag");

然后在您的 onClickListener 中:

child.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Object tag = view.getTag();
        if (tag instanceof String) {
            String stringTag = (String) tag;
            if (stringTag.equals("Some tag") {
                // do something
            }
        }
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM