我的问题是我不能从另一个方法引用我的最终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时间。也许它与方法声明有关(使用最终变量的公共无效错误?)
先谢谢
答案 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);