Android 缺少 Rect set() 方法

Android Rect set() method missing

我正在使用 Android Studio 1.1.0 并尝试在某些代码中使用 Rect .set() 方法来设置新创建的矩形的边缘,我得到了消息 "Cannot resolve symbol 'set'" 即使我按照提示导入了 android.graphics.Rect。

当我声明一个新的 Rect 并同时定义它的边时,它工作正常。

但是,如果我尝试声明一个新的空 Rect,然后在另一条线上定义它的边,它就无法识别 set() 方法的存在(或者我试图错误地访问它?)。

此外,当我键入 Rect 名称后跟“.”时,它不会提示我使用各种 Rect 函数,而是弹出 "ClassLoaderCreator" 和 "Creator".

我哪里做错了,我怎样才能让这个和其他 Rect 函数工作?我尝试清理和重建我的项目。

import android.graphics.Rect;

public class MainActivity extends ActionBarActivity {

Rect staticRect = new Rect(100,100,200,200); // works fine

Rect dynamicRect = new Rect(); // this is okay, too, but not useful until set

dynamicRect.set(200,200,300,300); // Cannot resolve symbol 'set'


dynamicRect. // As I start typing here, after the . none of the Rect functions appear, 
             // just "ClassLoaderCreator<T>" and "Creator<T>"

...

问题是您试图从静态上下文(即从实例方法外部)操作实例变量 dynamicRect。以下是您的选择:

创建一个方法来进行初始化,并在适当的时候调用它。例如:

private void setupRects() {
    dynamicRect.set(200,200,300,300);
    // do other stuff
}

如果合适,您也可以将初始化代码放在 activity 的 onCreate 方法中。

或者,如果您希望静态初始化 dynamicRect,您可以执行以下操作:

static Rect dynamicRect = new Rect();

static {
    dynamicRect.set(200,200,300,300);
    // do other stuff
}