2016-09-18 9 views
0

こんにちは私はちょうどAndroid用アプリケーションの開発を学び始めていると私はチュートリアルの多くを見ていますが、それらのどれもが本当にステップごとに記載していないという意味ではので、私の質問は:私が持っているのJava - アンドロイド - view.getContext()

私は今、私はそれがEditTextからユーザ入力をプリントアウトしたいと思いますので、私がやったことなので、それはonButtonClickメソッドをトリガーする私のButtonandroid:onClick="onButtonClick"を追加したと1 Button

に含まれているシンプルなアプリを作成しました:

public void onButtonClick(View v){ 
     Toast.makeText(v.getContext(), email.getText().toString(), Toast.LENGTH_SHORT).show(); 
    } 

しかし、なぜこの方法にはView vが含まれていなければなりませんか?それはどこから渡されたのですか?それには何が含まれていますか?それは私がクリックしたボタンを含んでいますか? v.getContext()は何をしていますか?なぜv.getContext()thisに置き換えると、私のアプリは同じことになりますか?

答えて

0

ボタンをクリックすると、ビューが渡されます。 ViewGroupはViewのLinearLayout、Relative Layout、FrameLayoutなどのグループです。 ViewはViewGroupの一部です。 Official Documentationによれば、ビューは画面上の矩形領域を占め、描画およびイベント処理を担当します。ビューは、インタラクティブUIコンポーネント(ボタン、テキストフィールドなど)の作成に使用されるウィジェットの基本クラスです。 ViewGroupサブクラスはレイアウトの基本クラスであり、他のビュー(または他のViewGroups)を保持し、レイアウトプロパティを定義する不可視コンテナです。 ViewとViewGroupが何であるかをよく理解していただければ幸いです。

0

これは一度に多くの質問ですが、私はそれらを一つずつ回答しようとしています。

しかし、この方法にはなぜView v?それはどこから渡されたのですか?それには何が含まれていますか?

ビュー:クリックされたビュー

documentation of View.OnClickListenerを考えてみましょう。

あなたは、それがクリックされたビューであることを前提としています。

v.getContext()は何をしますか?

​​メソッドの最初のパラメータはContextです。基本的にContextは、Androidアプリケーションのグローバル情報のコンテナです。 Toastは、それ自体を表示するために情報を検索する必要があります。

v.getContext()をこれに置き換えると、私のアプリケーションは同じように機能しますか?

あなたの方法はActivityにあるものとします。 ActivityContextのサブクラスであり、パラメータとして使用できます。

関連する問題