我正在尝试在我的构造函数中为我创建的类初始化一些按钮:
for (int i = 0; i < remotes.getRemote(0).getButtonsCount(); i++)
{
buttonsUI[i] = (Button)findViewById(buttonsUI[i].getId());
buttonsUI[i].setOnClickListener(this);
}
但无法识别findViewById
。我是否需要在课堂上使用扩展MainActivity
或者有更好的方法吗?
答案 0 :(得分:2)
您需要活动上下文来调用该方法。在活动中创建类时,使用构造函数将this
作为上下文传递。将上下文保存在类成员变量中,并在类方法中使用它。
答案 1 :(得分:0)
不,您不需要扩展活动。
无论你做什么,只需停一分钟。因为您需要在Android应用程序框架上学习一些课程,其中包含在此特定情况下所需的详细信息: Inflater Service
和Context
。您可以在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);
}
}