2016-07-05 8 views
0

私はAndroidには初めてで、Javaでの経験はほとんどありません。私はいくつかのメソッドがViewオブジェクトを必要とする理由を理解していません。Viewオブジェクトをいくつかのメソッドに渡す必要があるのはなぜですか?

アクティビティでボタンをクリックすると呼び出されるメソッドです。

public void eatCookie(View view) { //Example code inside 

    ImageView previous = (ImageView) findViewById(R.id.android_cookie_image_view); 
    previous.setImageResource(R.drawable.after); 
    TextView previousText = (TextView) findViewById(R.id.status_text_view); 
    previousText.setText("I'm so full!"); 
    } 

このコードでは、ビューオブジェクトを使用する行はありません。このコードはudacityチュートリアルからのものです。オブジェクトビューが実際に無用である。この場合、

public void eatCookie() {.....} 
+0

私はこれは正しい説明ですわからないが、[この]をチェック(http://terokarvinen.com/2011/simple-button-for-android-xml-onclick-public-method )。ビューのonClickプロパティが見つかるかもしれないレイアウトファイルをチェックする必要があるかもしれません。 – Raghavendra

+1

[なぜこの型にView型のオブジェクトを渡す必要がありますか?](http://stackoverflow.com/questions/21618368/why-do-you-need-to-pass-an-object-このタイプの視点からタイプへのビュー) –

答えて

0

:なぜ彼らはこのような「eatCookie」方法を形成していない可能性があります。

しかし、あなたが膨張し、レイアウトビューからビューを取得するには、このようsomethnigを行うだろうフラグメントのように、他の例では:

public void eatCookie(View view) { //Example code inside 
    ImageView previous = (ImageView) view.findViewById(R.id.android_cookie_image_view); 
    previous.setImageResource(R.drawable.after); 
    TextView previousText = (TextView) view.findViewById(R.id.status_text_view); 
    previousText.setText("I'm so full!"); 
} 
1

私はいくつかUdacityのコースを取っている - 私は彼らが後でこれを利用することになる期待ビューオブジェクト。実際のシナリオではそうでない場合、予期しない実装になります。メソッド内のパラメータは、そのメソッドで使用されることが期待されます。私があなただったら汗をかくことはありません - 進行してください!

0

ユーザーインターフェイスのすべての項目は、Androidビュークラス(正確にはandroid.view.View)のサブクラスです。 Android SDKには、ユーザーインターフェイスを構築するために使用できる一連の事前構築ビューが用意されています。典型的な例には、Button、CheckBox、ProgressBar、TextViewクラスなどの標準アイテムが含まれます。このようなビューは、ウィジェットとも呼ばれます。

ビューは、他の複数のビュー(コンポジットビューとも呼ばれます)で構成することもできます。このようなビューは、Android ViewGroupクラス(android.view.ViewGroup)からサブクラス化されており、View自体はViewのサブクラスです。このようなビューの例は、RadioGroupです。

関連する問題