Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获得实际活动?_Android_Android Activity_Findviewbyid - Fatal编程技术网

Android 如何获得实际活动?

Android 如何获得实际活动?,android,android-activity,findviewbyid,Android,Android Activity,Findviewbyid,也许这是有史以来最愚蠢的问题,但我在获取实际的活动对象时遇到了一些困难 我的目的: 为了从不同的活动s中提取错误处理,我使用静态方法创建了一个类ErrorHandler 这种方法如下所示,例如: public class ErrorHandler { ... public static ErrorTuple checkPlaceInput(Activity activity){ EditText edit = (EditText) activity.findVie

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

我的目的:

为了从不同的
活动
s中提取错误处理,我使用静态方法创建了一个类
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(…)
方法,我必须将
活动作为参数传递。正如我在这里读到的不同问题一样,没有其他方法可以从正在运行的
活动
外部访问
视图
s。但是,从
活动本身
如何访问此对象?
上下文
MyActivity.class
都不是确切的
活动
对象。

用于获取当前对象。在一个活动中,您可以调用findViewByID而无需任何操作。

如果您是从一个活动调用该方法,只需执行
检查placeInput(this)
使用
this。
关键字-它是您的对象实例。在活动范围内,您可以直接调用
findViewById()

是什么让您认为在活动类中使用“this”不会引用该活动?因为我认为使用它会引用上下文,而我认为上下文!=活动。所以我的问题是愚蠢的:-/@Daniel这有点近视<代码>此
引用容器对象。例如,在活动的匿名类中使用
this
,例如
newonclicklistener(){…}
,将不会引用活动类。