当我声明双变量时,后来尝试为它们赋值时,它说是unknown class。其次,从我创建的对象调用的任何方法调用都无法解析symbol。

我的代码:

私人双xCurrentPos,yCurrentPos;
私人ImageView测试=(ImageView)findViewById(R.id.square);

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


这段代码说xCurrentPos和yCurrentPos都是未知类,并且无法解析getLeft或getTop。

任何帮助将不胜感激。 :)

最佳答案

您不能在类的上下文中分配变量。

据我所知,您正在做类似的事情,这给您您所描述的错误。

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为null。

设置内容视图后,即使在onCreate中执行此操作也将为getLeftgetTop赋值为0,因为尚未绘制视图。为此,您可以参考this。基本上,您需要在已绘制视图的情况下执行此操作。

08-06 10:09