为什么我们需要将 View 对象传递给某些方法?

Why do we need to pass View objects to some methods?

我是 android 的新手,在 Java 方面的经验很少。我不明白为什么有些方法需要 View 对象。

这是在 activity 上单击按钮时调用的方法。

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 教程。为什么他们没有形成这样的"eatCookie"方法:

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

在这种情况下,对象视图确实没有用。

但在其他情况下,例如在片段中,您会像这样从膨胀的布局视图中获取视图:

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!");
}

我参加了一些 Udacity 课程 - 我希望他们以后会使用这个 View 对象。如果不是——在现实世界的场景中,这将是一个意想不到的实现。方法中的参数预计将由该方法使用。如果我是你,我不会出汗 - 继续进步!

用户界面中的每个项目都是 Android 视图 class 的子 class(准确地说是 android.view.View)。 Android SDK 提供一组可用于构建用户界面的预构建视图。典型示例包括标准项,例如 Button、CheckBox、ProgressBar 和 TextView classes。此类视图也称为小部件。

一个视图也可以由多个其他视图组成(也称为复合视图)。这些视图是从 Android ViewGroup class (android.view.ViewGroup) 子class编辑的,它本身是 View 的子class。这种视图的一个示例是 RadioGroup,

这里回答了这个问题: Why do you need to pass an object of type View to this method? 请仔细查看。

祝你好运