MyButton扩展了Button,但它已经存在于layout.xml中

时间:2014-04-23 13:43:09

标签: java android android-studio

我想在单独的文件中编写ButtonListener和Button init,而不是在MainActivity.java中编写

好的,我创建了MyButton类(扩展Button),编写了构造函数和OnClick.Listener。

但是如何将它包含在MainActivity中,它应该像

class MainActivity extends blabla
{
    private MyButton my_button;
    public OnCreate 
    {
         my_button = findViewById(id); // this obviously doesnt work

问题是该按钮已经存在,已在layout.xml中定义

将layout.xml中的按钮与MyButton类连接的正确方法是什么,或者是在单独的源文件中编写按钮init(f.e. Caption change)和实现(OnClick)的另一种方法。

谢谢你,Stack上尉!

1 个答案:

答案 0 :(得分:0)

my_button =(MyButton)findViewById(id);

函数View findViewById(int)返回一个View对象,它是calss Button的superClass。你必须明确地转换它。

例如,汽车,飞机,火车是The Transportation的子类。你可以说:"汽车是 交通。"但不能说:"交通工具是汽车。"

我认为你能理解我的意思,并为我糟糕的英语道歉。