0

これは、それがどのように機能するかを知っている人にとっては簡単な質問です。

TextView myText = (TextView) findViewById(R.id.myText);
Button btn = (Button) findViewById(R.id.button);

(Textview)/(Button) は何をしますか?

それは同等ですか

TextView myText = new TextView(findViewById(R.id.myText));
Button btn = new Button(findViewById(R.id.button));

また、私の勘違いかもしれませんが、これはAndroidだけでなくJava言語でも?

ありがとう

注:テキストビューやボタンが何であるかを尋ねているのではなく、これがインスタンス化、キャストなどのタイプであることを尋ねています.

4

4 に答える 4

0

さて、(Button) や (TextView) のような (Type) をキャストと呼びます。キャストに関する情報は、Google でどの言語でも簡単に見つけることができます。

于 2013-06-13T14:52:57.787 に答える
0

View.findViewById()

型を返しますView。このView型はTextViewButtonまたはその他の型になります。キャスト (() が意味するもの) を実行することで、返さViewれた型がそれらの中括弧内の型であるとランタイムに伝えます。

TextViewButtonは View タイプのサブクラスです。

于 2013-06-13T14:57:40.260 に答える
0

テキストビューを初期化しています

     TextView myText = (TextView) findViewById(R.id.myText);
     // the one in the braces is casting to textview

public final View findViewById (int id)

アクティビティに設定されている現在のビュー階層のViewByIdを見つけることができます。

指定された ID を持つ子ビューを探します。このビューに指定された ID がある場合、このビューを返します。

プログラミングでやりたいなら

     TextView myText = new TextView(ActivityName.this); 

上記のようにする場合は、ルートビューに追加する必要があります

ルート ビューとして LinearLayout がある場合

     setContenView(R.layout.mylayout);
     LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayout);   
     ll.addView(myText);  

また

     setContentView(myText); 
于 2013-06-13T15:01:10.773 に答える
0

Android はプラットフォームであり、Java は Android アプリケーションを作成するために使用される言語です。そう

TextView myText = (TextView) findViewById(R.id.myText);

は Java のキャスト (View -> TextView) であり、いいえ、コンストラクターを使用することと同等ではありません。

于 2013-06-13T14:55:29.503 に答える