3

(EditText)次のスニペットの はどういう意味ですか?

EditText editText = (EditText) findViewById(R.id.edit_message);

クラス EditText の新しいインスタンスの宣言であることは理解しています...

しかし、私はその(EditText)部分に戸惑っていますか?どういう意味ですか ?

4

3 に答える 3

2

EditTextアプリケーションのUIの編集フィールドを表すAndroidクラスです。現在の場合、アクティビティのxmlでedittextフィールドを定義したように見え、クラスのメソッドを使用してプログラムで操作できるように、このフィールドへの参照を取得しています。

あなたはそれでできるすべてを見ることができます:Android開発者:EditText

にキャストしなかった場合は、View Android Developer:ViewEditTextとしてのみ処理できます。

于 2012-11-09T23:14:10.877 に答える
2

このfindViewByIdメソッドはオブジェクトを返し、Viewそれを表すEditTextオブジェクトにするには、その方法でキャストする必要があります。あなたは実際にのインスタンスで作業したいので、の特定のプロパティにアクセスできるようにしたいのではEditTextありませんViewEditText

EditText editText = findViewById(R.id.edit_message);

上記のコードは有効EditTextViewはなく、同じではないため、キャスト/変換する必要があります。

于 2012-11-09T23:14:35.143 に答える
2

これは明示的なクラス キャストです。によって返される一般的な View オブジェクトはfindViewById()、EditText オブジェクトにキャスト/変換されます。

(EditText) findViewById(R.id.edit_message);
于 2012-11-09T23:12:21.183 に答える