0

これは私が見つけることができる唯一の方法ですが、ハッキーなようです:

public View getViewByIdFromLayout(int id) {
    for (int i = 0; i < layout.getChildCount(); i++) {
        View v = layout.getChildAt(i);
        if (v.getId() == id)
            return v;
    }
    return null;
}

これを行うより良い方法はありますか?これらのビューは、xml ではなくプログラムで作成されたものであり、ビューの ID は特定のレイアウトで一意になりますが、他のレイアウトで再利用される場合があります。

4

2 に答える 2

3

findViewById()IDさえあればそのまま使えます。IDが一意findViewById()であるレイアウトを呼び出すようにしてください。

于 2013-09-19T23:52:12.810 に答える
0

あなたは変わるべきです

 if (v.getId() == id)
        return v;

 if (v.getId().equals(id))
        return v;
于 2013-09-19T23:53:31.797 に答える