(EditText)
次のスニペットの はどういう意味ですか?
EditText editText = (EditText) findViewById(R.id.edit_message);
クラス EditText の新しいインスタンスの宣言であることは理解しています...
しかし、私はその(EditText)
部分に戸惑っていますか?どういう意味ですか ?
EditText
アプリケーションのUIの編集フィールドを表すAndroidクラスです。現在の場合、アクティビティのxmlでedittextフィールドを定義したように見え、クラスのメソッドを使用してプログラムで操作できるように、このフィールドへの参照を取得しています。
あなたはそれでできるすべてを見ることができます:Android開発者:EditText
にキャストしなかった場合は、View Android Developer:ViewEditText
としてのみ処理できます。
このfindViewById
メソッドはオブジェクトを返し、View
それを表すEditTextオブジェクトにするには、その方法でキャストする必要があります。あなたは実際にのインスタンスで作業したいので、の特定のプロパティにアクセスできるようにしたいのではEditText
ありませんView
EditText
EditText editText = findViewById(R.id.edit_message);
上記のコードは有効EditText
でView
はなく、同じではないため、キャスト/変換する必要があります。
これは明示的なクラス キャストです。によって返される一般的な View オブジェクトはfindViewById()
、EditText オブジェクトにキャスト/変換されます。
(EditText) findViewById(R.id.edit_message);