如何在自定义类中使用findViewById? (机器人)

时间:2014-03-04 05:12:49

标签: java android button

我正在尝试在我的构造函数中为我创建的类初始化一些按钮:

    for (int i = 0; i < remotes.getRemote(0).getButtonsCount(); i++)
    {
        buttonsUI[i] = (Button)findViewById(buttonsUI[i].getId());
        buttonsUI[i].setOnClickListener(this);
    }

但无法识别findViewById。我是否需要在课堂上使用扩展MainActivity或者有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

您需要活动上下文来调用该方法。在活动中创建类时,使用构造函数将this作为上下文传递。将上下文保存在类成员变量中,并在类方法中使用它。

答案 1 :(得分:0)

不,您不需要扩展活动。 无论你做什么,只需停一分钟。因为您需要在Android应用程序框架上学习一些课程,其中包含在此特定情况下所需的详细信息: Inflater ServiceContext。您可以在Android Developer网站上搜索并拥有大量资源。

看起来你正处在起步阶段,坦率地说,最佳起点在Google IO 2008上观看Inside Android Application Framework。去投放该视频。< / p>

我希望在开始Android应用程序开发之前我已经看过它了。

答案 2 :(得分:0)

您只需传递要添加Button的应用程序的Context,发送此Constructor的参数的Context,并使用如下所示....

 ClassName(Context contextMainActivity)
{

     for (int i = 0; i < remotes.getRemote(0).getButtonsCount(); i++)
     {
        buttonsUI[i] = (Button) contextMainActivity.findViewById(buttonsUI[i].getId());
        buttonsUI[i].setOnClickListener(contextMainActivity);
     }
}