2011-11-30 8 views
1

コードでいくつかのビューを作成し、そのビューにIDを割り当てる必要があります。他のビューIDの中で一意であることが保証されているビューIDを生成するにはどうすればよいですか?コードでビューIDを生成する方法は?

+0

uuidクラスを使用します。 http://stackoverflow.com/questions/2982748/create-a-guid-in-java –

答えて

4

ビューのIDは、アプリケーション全体ではなくビュー階層内で一意である必要はありません。 それがユニークであるようにしたい場合は、hashCode()を使用してView.setID()に渡すことができます。

+0

このアクティビティで既に定義されているビューと同じIDが返された場合はどうなりますか?これはクラッシュを引き起こすでしょうか? – Bobbake4

+0

XMLで2つのビューに同じIDを設定した場合、R.javaで1回しか取得できず、アプリケーションが動作するため、同じIDを設定するとクラッシュするとは思わない(ただし、アクセスしようとすると予期しない動作が発生する可能性がある彼らのうちの1つをランダムに取得するのか、何を得るのか全く分かりません)。 しかし、私は同じビュー階層*内で他のビューのハッシュコードと同じIDを持つビュー*を持つべきであるので、チャンスはゼロに近いと思います。 – gianpi

+0

私はhashCodeを使用して終了し、私はまだ問題がなかったので、それがうまくいくことを願っています。ありがとう – Bobbake4

0

単なる考え:自動生成されるすべてのリソースIDが正の整数であることは間違いありません。したがって、コードで作成するもののIDとして負の整数を割り当てることができます。 gianpiのhashCode()アイデアを使用して、その結果の逆を単純に使用することもできます。

0

固定小数点数を生成する必要がある場合は、すでに生成されているR.string。* idsの一部を使用できます。これにより、既存のビューIDと競合しないことが保証されます。

関連する問題