【问题标题】:android: how to know passed parameter needed from android xmlandroid:如何知道需要从 android xml 传递的参数
【发布时间】:2012-02-28 09:16:38
【问题描述】:

我按照教程进行操作,然后在我的 android xml 布局中获得了这段代码:

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
**android:onClick="onClick"**
android:text="Button" />

然后在.java文件上有方法:

public void **onClick(View view)**{
   //...something...
}

所以我不知道为什么从 xml 发送“视图”参数, 至少我需要知道xml需要什么参数。 有很多这样的代码,android文档对此没有很好的解释

【问题讨论】:

    标签: android parameter-passing android-xml


    【解决方案1】:

    视图是您的视图的实例(在您的情况下是按钮)。它检查类似于 view.getId();....

    如果你使用onClick方法对于多个Button.....

    switch(view.getId()){
    case R.id.btn1: 
         //click on btn1
    case R.id.btn2:
         //click on btn2
    case R.id.btn3:
         //click on btn3   
    }
    

    【讨论】:

      【解决方案2】:

      View 参数是你被点击的按钮或任何其他已注册 onclick 的布局或视图被点击。 它用于假设您有两个将被单击的按钮。因此在 onlclik 中您可以检查 view== button1 或 button2 等

      【讨论】:

        【解决方案3】:

        任何物体都会有一个视图..

        所以当 onClick(View view) 发生在这里时,这个 view 变量(View 类型)可以用于进一步的编码(就在 //something 之后).. 传递的参数可用作“标识符”单击事件发生的内容,屏幕上的哪个视图。这里考虑的视图不仅仅是现实生活中的视图,而是 UI 中的任何元素,如 TextView、Button、EditText,图像视图..

        因此,让代码知道点击发生的位置或用户实际点击的内容非常有用..

        here is some reference for deeper understanding of Views:

        这个类代表了用户界面的基本构建块 成分。 View 在屏幕上占据一个矩形区域,并且是 负责绘图和事件处理。 View 是基类 小部件,用于创建交互式 UI 组件(按钮、 文本字段等)。

        希望对您有所帮助..

        【讨论】:

          【解决方案4】:

          当您实现 OnClickListener 时,您必须重写 onClick(View view) 方法,其中 Parameter view 只不过是您单击的实际视图。

          例如假设您的布局中有 2 个按钮,并且您在两个按钮上都应用了点击事件。现在您的活动类正在实现 OnClickListener,那么您需要以这种方式检查点击的视图:

          public void onClick(View view){

            if (view == button1){
                // Do Something on Button1 click
            } else if (view == button1){
                // Do Something on Button1 click
            }
          

          }

          我希望这会有所帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-12-03
            • 2017-12-15
            • 2016-01-26
            • 2021-08-21
            • 2023-03-14
            • 2015-01-25
            • 1970-01-01
            • 2017-11-02
            相关资源
            最近更新 更多