如何获得实际的活动?

时间:2012-10-31 19:06:00

标签: android android-activity findviewbyid

也许这是最愚蠢的问题,但我在获取实际的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作为参数。当我在这里阅读不同的问题时,没有其他方法可以从正在运行的View外部访问Activity。但是,从Activity本身,我该如何访问这个对象? ContextMyActivity.class都不是Activity对象。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

即可