我为什么要使用View参数而不是我想要的?

Eug*_*ene 1 android

这是我的简单例子.我在main.xml文件中定义了一个按钮,并在"点击"属性中调用了按钮01时调用我的onClickk方法.这很好,但我不明白为什么View我想通过简单的传递对象Button并且不进行投射.

如果我将按钮作为按钮传递,则当我点击按钮时应用程序意外停止.

public class Als extends Activity {

    Button button01; 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button01 = (Button) findViewById(R.id.Button01);
        button01.setText("something");

    }

    public void onClickk(View button01) {
        Button but = (Button) button01;
        but.setText("Cooool");
    }
}
Run Code Online (Sandbox Code Playgroud)

Ton*_*aro 5

那是因为OnClick事件是View对象的一部分.Button只是继承/使用它.当onClick函数由框架调用,它调用它的视图对象,而不是按钮,这样它通过一个视图,然后你需要知道什么类型转换它.