缺少Android Rect set()方法



我使用的是Android Studio 1.1.0,并试图在某些代码中使用Rect.set()方法来设置新创建的矩形的边缘,尽管我按照提示导入了Android.graphics.Rect,但我还是收到了消息"无法解析符号'set'"。

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

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

此外,当我键入Rect名称后跟"."时,没有提示我使用各种Rect函数,弹出"ClassLoaderCreator"one_answers"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
}

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

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

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

最新更新