android:xml属性android:onClick,为什么方法需要View参数

标签 android xml onclick

当我在activity的xml中创建android:onClick属性时,onClick定义的方法需要有View参数,为什么是View?

即 我 Activity 中的 onClick 方法----------> public void sayHello(View v){...}

考虑下一段代码,我没有使用 View 变量,但我仍然需要在方法中传递它,怎么会这样呢?:

public void onClick(View view){
        TextView t= new TextView(this);
        t=(TextView)this.findViewById(R.id.textView2);
        t.setText("new text");
    }

最佳答案

因此您知道哪个View 正在调用该方法。 这就像为您的 Activity 实现 OnClickListener,创建的方法是 onClick(View v)(或 arg0,具体取决于您的 Eclipse),定义它from xml 只是为 View 指定一种监听器,并将监听器中的方法作为该参数。

进入该方法后,您可以切换按钮的 ID,以执行不同的操作:

public void myOnClickMethod(View v){
    switch(v.getId()){
       case R.id.button1:
          //Do something for button 1
       break;
       case R.id.button2:
          //Do something for button 2
       break;
    }
}

简而言之。当您定义 android:onClick="myOnClickMethod" 属性时,Android 只是为您实现了 OnClickListener

关于android:xml属性android:onClick,为什么方法需要View参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055173/

相关文章:

android - 不断向 ListView 添加新数据的最佳方法

java - 复选框文本,将实际复选框推到左侧

html - 保留元素内的空间并删除元素之间的空格(空行)XSLT、CSS

android - 单击回调后的新 Intent

android - Maps api v2 android 我的位置不适用于 2.3.3

ios - 如何使用 NSXMLParser 从 SWIFT 中的 XML 获取特定属性

java - 如何使用 JAXB 创建复杂的 xml 标签

javascript - 单击时更改 Bootstrap 列类,单击其他元素时将其更改回

javascript - 如何使用 onclick 将 php 图像更改为另一个 php 图像

android - 原文件 'AndroidManifest.xml'已被删除或不可访问