Android Studio未知类

时间:2014-05-10 18:59:22

标签: java android android-studio

当我声明双变量,然后尝试为它们赋值时,它表示未知类。其次,我创建的对象的任何方法调用都说无法解析符号。

我的代码:

private double xCurrentPos, yCurrentPos;
private ImageView test = (ImageView) findViewById(R.id.square);

xCurrentPos = test.getLeft(); yCurrentPos = test.getTop();

此代码表示xCurrentPos和yCurrentPos都是未知类,并且无法解析getLeft或getTop。

非常感谢任何帮助。 :)

2 个答案:

答案 0 :(得分:1)

你不能在类的上下文中对变量进行分配。

据我所知,你正在做这样的事情,它会给你所描述的错误。

public class YourActivity extends Activity {

    private double xCurrentPos, yCurrentPos;
    private ImageView test = (ImageView) findViewById(R.id.square);
    xCurrentPos = test.getLeft();
    yCurrentPos = test.getTop();

    ...
}

你必须按照这样的方式进行分配:

private int xCurrentPos= test.getLeft();
private int yCurrentPos = test.getTop();

或者您在实际方法中进行分配。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    xCurrentPos = test.getLeft();
    yCurrentPos = test.getTop();
}

其次,这样做:

private ImageView test = (ImageView) findViewById(R.id.square);
无论如何

都无效,因为这会在onCreate之前初始化,因此test将为空。

在设置内容视图后,即使在onCreate中执行此操作,也会为getLeftgetTop提供0值,因为您尚未绘制视图。为此,您可以参考this。您基本上需要在已经绘制视图的事件中执行此操作。

答案 1 :(得分:0)

View类的getLeft()getTop方法返回int,而不是double。您不需要使用双重类型。