Java - Android - view.getContext() 含义

标签 java android

您好,我刚刚开始学习 Android 应用程序开发,我正在观看很多教程,但没有一个教程真正一步步描述,所以我的问题是:

我创建了一个简单的应用程序,其中在 TextView 上包含一个 EditText 和一个 Button

我已将 android:onClick="onButtonClick" 添加到我的 Button 中,因此它将触发 onButtonClick 方法,现在,我想它从 EditText 打印出用户输入,所以我所做的是:

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

但是为什么该方法必须包含 View v ?它是从哪里传递过来的?它包含什么?它包含我单击的按钮? v.getContext() 是做什么的?为什么我的应用程序在将 v.getContext() 替换为 this 时会执行相同的操作?

最佳答案

一下子有很多问题,但我尝试一一回答。

but why the method has to contain the View v ? where is it passed from ? and what does it contain ?

考虑documentation of View.OnClickListener :

View: The view that was clicked.

因此,您的假设是正确的,即已单击的是 View 。

and what does the v.getContext() do?

Toast#makeText 方法的第一个参数是 Context。基本上,Context 是 Android 应用程序中全局信息的容器。 Toast 需要它检索信息来显示自己。

why my app does the same when replacing the v.getContext() with this ?

我假设您的方法驻留在Activity中。安ActivityContext的子类,可以用作参数。

关于Java - Android - view.getContext() 含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39558552/

相关文章:

java - Java 中的自定义异常类命名

java - 在 Android Studio 中添加 Action Bar Sherlock 和 AppCompat v7 时出错

java - 国际象棋秒表工作不规律

java - 如何确保更新 Firebase 数据库的过程完成,无论 Activity 的生命周期如何

android - MediaRouter 的 Chromecast Nullpointer 异常

Android Horizo​​ntalScrollView 子宽度

java - 16 位 char 值中的第 6 位在哪里?

android - 如何从android中的VRPanorama View中删除信息标签

java - 甲骨文对谷歌的诉讼对 Android 开发者意味着什么?

java - j2se应用最佳实践