【问题标题】:Android method paramater variable meaning/use?Android方法参数变量含义/使用?
【发布时间】:2013-05-12 09:02:39
【问题描述】:

这里是初学者。

首先,当我尝试在 xml 中使用 android:onClick 并引用一个方法来实现按钮点击时,这个问题就出现了。

现在,当你引用一个方法时,activity中方法的参数必须是“(View)”。快速提问,方法参数中View后面的变量是什么?通常它就像“(View v)”或“(View view)”。参数中的第二个变量是什么,可以是什么?什么时候使用?只想要关于它的一般信息,在任何地方都找不到这样的具体信息。

提前致谢

【问题讨论】:

  • 它们不是两个参数。每个参数都必须用名称和类型声明。 View v 声明了一个名为 v 的参数,类型为View

标签: android methods parameters


【解决方案1】:

我想你误会了。 (View view) 中的第一个参数是参数的类型,第二个是提供给它的临时名称(它只是一个虚拟名称,因此您可以使用任何您喜欢的名称)。例如,如果我必须传递一个整数作为参数,我将使用(int i),其中i 被理解为int 类型。因此,在您的情况下,View 类型的对象暂时称为view,以作为参数传递给函数。

【讨论】:

  • 那么在这种情况下,无论 View 之后是什么,我都可以更改为我喜欢的任何内容?有点像变量?
  • 是的,这就是为什么它也被称为“虚拟”变量。
  • 谢谢!这就是我所需要的。
【解决方案2】:

这是对您正在单击的视图的引用。看看这里的question,你可能会发现什么时候使用它。

【讨论】:

    【解决方案3】:

    所以你问的是onClick()? 该方法来自View.onClickListener接口,可以查看http://developer.android.com/reference/android/view/View.OnClickListener.html中的文档

    因为是界面,所以只会有参数:View,代表你刚才点击的视图。例如,如果你在界面中设置了一个按钮,则意味着按钮,如果你在界面中设置了一个ImageView,则意味着ImageView本身;

    例如:

    YourActiivty extends Activity implements View.OnClickListener {
         public void onCreate(Bundle onSaveInstance) {
             super.onCreate(onSaveInstance);
    
             setContentView(R.layout.yourlayout);
             //your button, we assume id is R.id.yourbutton;
             Button yourbutton = (Button) findViewById(R.id.yourbutton);
             yourbutton.setOnClickListener(this);
             //your imageview, we assume id is R.id.yourimageview;
             ImageView yourImageView = (ImageView) findViewById(R.id.yourimageview);
             yourImageView.setClickable(true);
             yourImageView.setOnClickListener(this);
         }
         @Override
         public void onClick(View v) {
              int id = v.getId();
              if(id == R.id.yourbutton) {
                 //your button is clicked!
              } else if(id == R.id.yourimageview) {
                 //your imageview is clicked!
              }
         }
    }
    

    【讨论】:

    • 我想问一下参数View后面的实际字母“v”是什么。这只是一个变量,我可以将其更改为我想要的任何内容吗?
    • 当然你可以把它改成你想要的任何东西。我觉得应该是一些编程的基础知识吧。
    • 非常基础。这就是为什么我是一个初学者:)
    猜你喜欢
    • 1970-01-01
    • 2018-03-02
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多