2012-10-31 44 views
0

也许这是有史以来最愚蠢的问题,但我在获取实际的Activity对象时遇到了一些问题。如何获得实际活动?

我的目的:

为了提取错误来自不同Activity的操控,我做了一个类ErrorHandler用静态方法。

这种方法看起来像这样,例如:

public class ErrorHandler { 
    ... 
    public static ErrorTuple checkPlaceInput(Activity activity){ 
     EditText edit = (EditText) activity.findViewById(R.id.et_nbge_place); 
     if(edit.getText().toString().equals("") || edit.getText()==null){ 
      return new ErrorTuple(false, "Please enter a place!"); 
     } 
     return new ErrorTuple(true, "everything is fine"); 
    } 
} 

为了访问findViewById(...)方法,我必须通过Activity作为参数。当我在这里读到不同的问题时,没有其他方式可以从Activity以外访问View。但是,从Activity本身,我怎样才能访问这个对象? ContextMyActivity.class都不是Activity对象。

+0

是什么让您认为在Activity类中使用'this'不引用该活动? – Daniel

+0

因为我认为使用这个引用的上下文,我认为上下文!=活动。所以我的问题确实很愚蠢: -/ –

+0

@Daniel这有点短视。 'this'指的是容器对象。例如,在一个Activity的匿名类中使用'this',像'new OnClickListener(){...}',不会引用Activity类。 – Sam

回答

0

如果您从活动中调用该方法,只需执行checkPlaceInput(this)即可。

1

使用this获取当前对象。在Activity中,你可以在没有任何事情的情况下调用findViewByID。

0

使用this.关键字 - 它是您的对象实例。在活动范围内,您可以直接致电findViewById()