例えば、
Button b = (Button) findViewById (R.id...)
TextView t = (TextView) findViewById (R.id..)
なぜこれを行うのですか?いつこれをしなければなりませんか?
あるクラスのオブジェクトをそのサブクラスにキャストするときはいつでも、明示的なキャストを行う必要があります。
findViewById は View クラスのオブジェクトを返します。このオブジェクトから Button や EditText などのオブジェクトを取得するには、明示的なキャストを行う必要があります。
などのサブクラスに定義されたメソッドやフィールドにアクセスする必要がある場合は、明示的なキャストを行う必要がありますsetText()
。
次のように、View クラスのメソッドのみにアクセスする必要がある場合は、View を明示的にキャストする必要はありません。
setOnClickListener()
.
xmlで定義されたコンポーネントを利用したい場合に使用します。
xml で textview または任意のコンポーネントを定義すると、1 つの整数ハッシュ コードが r.java で定義されます。
したがって、テキストビューとして使用する場合は、テキストビューにキャストする必要があります。
それが役立つことを願っています!!