您好我在我的函数中定义findViewById时遇到问题。以下是我的功能:
if(test.mStartedWalking == false){
TextView myText = (TextView) findViewById (R.id.myText);
myText.append (lsNow + '\n');
test.mStartedWalking = true;
}
我收到一条错误消息:对于StepDisplayer类型,方法findViewById(int)是未定义的,我很确定这是因为我的类没有扩展类型Activity。但是,我该如何纠正这个?该类实现了这一点:
public class StepDisplayer implements StepListener, SpeakingTimer.Listener
我无法扩展活动,因为我知道Java只扩展了一个类或者可以实现多个接口。可能有人知道如何解决这个问题?如果是这样那将是伟大的!谢谢!
答案 0 :(得分:2)
在Java中,您的类可以扩展单个类并实现多个接口。由于您的类StepDisplayer
仅实现了StepListener
和SpeakingTimer.Listener
接口,因此您可以扩展Activity
类。
<强> E.g:强>
public class StepDisplayer extends Activity implements StepListener, SpeakingTimer.Listener
如果出于任何原因无法执行此操作,您可以从Activity类中传递Context
,该类在StepDisplayer中调用所述方法并使用它来调用findViewById
方法。
yourMethodInStepDisplayerClass(IAmCallingStepDisplayerActivity.this);
答案 1 :(得分:1)
findViewById()
课程中提供了 Activity
方法。因此,如果您的类没有扩展Activity,则应将活动上下文传递给要调用findViewById()
的类。然后简单地调用
context.findViewById(int id) ;
: - )
答案 2 :(得分:1)
更改为
public class StepDisplayer extends Activity implements StepListener, SpeakingTimer.Listener