3

伙计们,我在 YouTube 上看过关于 android 的教程,它有 200 个视频,但没有解释什么是 Bundle、View 和 Context。

第一个问题什么是Bundle?

第二个问题onCreate 方法中的 bundle 是从哪里来的?那个包里面有什么?

第三个问题什么是上下文?我发现 Activity 扩展了 Context,那么说 Context 是 Activity 本身是否正确?或该活动的背景?

第4个问题什么是View?我发现 TextView 扩展了 View,而 Button EditText 等其他小部件扩展了 TextView,因此这意味着它们也扩展了 View。我还发现Button、EditText等小部件的语法是这样的……

TextView(Context);
Button(Context);
EditText(Context);

所以我的假设是
“Context = Activity = Screen”和“View = Button = TextView = EditText”

所以在这个例子中

public Example extends Activity{

    onCreate(){
        Button buttonObj = new Button(this):
    }
}

Button buttonObj = new Button(this);
这里的“this 关键字”是指扩展 Activity 的 Example 类。这里的代码基本上是说“把这个是 View 的 Button 放在作为屏幕的 Activity 的上下文中”
如果我是对的,那么为什么 Activity 在 Button 内部传递?因为如果在 Activity 中传递按钮是有意义的。

第五个问题这里发生了什么?

add.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub

        //code here

    }
});

什么是新的 View.onclickListener() ?这是一个返回实现 onClickListener 的对象的静态方法吗?

能否推荐一些学习安卓的好书?

4

3 回答 3

3

Bundle ~ Bundle 是数据的集合。当一个 Activity 启动时(通过 onCreate),Android 操作系统(或者你!)可以通过这个 bundle 传递一些额外的数据给这个 Activity。你知道什么是HashMap吗?捆绑包是一个美化的哈希图,它支持多种不同的类型。

OnCreate Bundle ~ 这个包来自 Android。老实说,不要太担心它。如果你想从另一个活动开始,你使用一个意图(你知道吗?)。因此,您可以将数据“捆绑”到意图中(使用setExtra方法)。来自意图的这些数据将包含在这个 onCreate 包中,您可以通过那里访问它。

上下文〜您正在运行的应用程序以及与之相关的任何内容。当您运行您的应用程序时,与您的应用程序关联的所有内容都被此上下文引用。你们所有的活动、视图、资源,一切都与上下文相关联。把它想象成这个词的定义:它是你的应用程序的上下文。每个应用程序都有一个独特的上下文。

视图~视图是可以在屏幕上绘制的任何东西。

于 2012-05-14T19:29:55.530 回答
1

OnCreate():活动的整个生命周期发生在第一次调用 onCreate() 到最后一次调用 onDestroy() 之间。活动在 onCreate() 中完成其所有“全局”状态的初始设置,并在 onDestroy() 中释放所有剩余资源。例如,如果它有一个线程在后台运行以从网络下载数据,它可能会在 onCreate() 中创建该线程,然后在 onDestroy() 中停止该线程。OnCreate 方法在首次创建活动时调用。这是您应该进行所有常规静态设置的地方——创建视图、将数据绑定到列表等等。如果捕获到该状态,则向该方法传递一个包含活动先前状态的 Bundle 对象。

视图:窗口的视觉内容由视图的层次结构提供——从基视图类派生的对象。每个视图控制窗口内的特定矩形空间。父视图包含并组织其子视图的布局。叶视图(位于层次结构底部的视图)在它们控制的矩形中绘制并响应指向该空间的用户操作。因此,视图是活动与用户进行交互的地方。例如,一个视图可能会显示一个小图像并在用户点击该图像时启动一个操作。Android 有许多现成的视图(小部件)可供您使用——包括按钮、文本字段、滚动条、菜单项、复选框等。

于 2012-05-14T19:22:05.227 回答
1

我建议你看一些基于文本的教程而不是视频,因为当你感到困惑时,它会更容易看和重读。

我将开始帮助您弄清楚这些术语的含义。

Bundle - 对你来说不是很重要的理解。调用活动时,您可以将内容添加到捆绑包中以发送到下一个活动,以便新活动具有您想要的信息。

背景——每个活动都有自己的背景,对它有基本的了解很重要。您的第一个应用程序将有一个活动(或类),一切都在其中完成。在这种情况下,您只需要担心表示当前活动活动的“this”上下文。但是,如果您使用具有多个活动的应用程序,有些可能是活动的,而另一些则不是。上下文告诉您的应用程序正在请求一个操作,例如在屏幕上显示文本或图像。

视图是您的基本 UI 元素。它们可以很简单,例如 TextViews(仅显示文本)、按钮,或者更复杂的,例如组织其他视图的布局。

对于您的示例:

public Example extends Activity{
     onCreate(){
          Button buttonObj = new Button(this):
          }

示例是使用活动资源的类的名称。当活动“示例”启动时,它首先调用 onCreate 方法。然后它会创建一个按钮对象,您可以将其“附加”到布局文件中的物理按钮上。

setOnClickListener 方法用于让您的活动准备好单击按钮。进入 onClick 部分的代码是用户单击按钮时会发生的情况。

如果你想进入 android 编程,你真的应该首先阅读这个网站上的常见问题解答。您应该只发布可回答的问题,而不是征求诸如什么是好书之类的意见。数百人已经问过这个问题,如果你不能做一个简单的谷歌搜索,你可能想等待学习编程。

但是我很好,所以这里有一些在线教程可以帮助您入门并解释您感到困惑的一些事情:

http://developer.android.com/guide/index.html http://www.codeproject.com/Articles/102065/Android-A-beginner-s-guide

于 2012-05-14T19:24:41.773 回答