我正在使用 Android Studio 1.1.0 并尝试在某些代码中使用 Rect .set() 方法来设置新创建的矩形的边缘,但我收到消息“无法解析符号” 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
}
关于java - 缺少 Android Rect set() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28846312/