FindViewById未定义?

时间:2013-03-07 07:47:25

标签: android class extend countdowntimer

您好我在我的函数中定义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只扩展了一个类或者可以实现多个接口。可能有人知道如何解决这个问题?如果是这样那将是伟大的!谢谢!

3 个答案:

答案 0 :(得分:2)

在Java中,您的类可以扩展单个类并实现多个接口。由于您的类StepDisplayer仅实现了StepListenerSpeakingTimer.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