试图引用最终的ImageView不起作用

时间:2015-01-03 23:03:25

标签: java android imageview

我的问题是我不能从另一个方法引用我的最终imageView(在onCreate中创建)。 我想要做的是保存数组中的图片路径,并使用onTouchListener更改imageView的图片。 我收到错误“imageView无法解析”。我尝试了很多东西,但没有任何作用。我可以在R和xml中找到我的imageView。

我尝试在新方法nextCard()中使用我的imageView:

public void nextCard() {
  rdmGenerated = randomZahl(0, 52);     
  rdmConverted = (int)rdmGenerated;
  imageView.setImageResource(card[rdmConverted]);
}

我的onCreate看起来像这样:

protected void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ImageView imageView = (ImageView)findViewById(R.id.imageView);

        imageView.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {
                nextCard();
            }
        });
}

我的卡片阵列如下所示:

可能有什么不对?我检查了区分大小写并且已经清理并建立了一个hundret时间。也许它与方法声明有关(使用最终变量的公共无效错误?)

先谢谢

2 个答案:

答案 0 :(得分:0)

前几天我遇到了同样的问题。我做的是,我使变量static能够将它引用到我希望访问该变量的所有方法。例如:如果我想访问ImageView,我声明为:

private static ImageView imageView;

然后一旦进入onCreate它会被初始化,希望它应该可用于所有其他方法.. 这个声明是在活动本身的onCreate之前完成的(如果你想知道在哪里声明)希望有所帮助。

答案 1 :(得分:0)

您已在onCreate方法中声明了imageView,因此它只具有本地范围。尝试将imageView声明为类成员。

懒惰

Class Something

私人ImageView imageView;

oncreate()方法
imageView =(ImageView)findViewById(R.id.imageView);