【发布时间】:2019-09-22 10:55:50
【问题描述】:
我正在尝试将值发送到另一个活动intent.putExtra("doctor",String.valueOf(items.get(i)));
,但它给出了错误。那就是“变量'i'是从内部类中访问的,需要声明为final”。代码在 for 循环中运行,所以我无法给出最终值,因为它是 iterator。
我们该如何解决?
部分代码
for (int i = 0; i < c; i++) {
items.add(options[i]);
spinnerDialog=new SpinnerDialog(NewActivity.this,items,"Search","Close");// With No Animation
spinnerDialog=new SpinnerDialog(NewActivity.this,items,"Search",R.style.DialogAnimations_SmileWindow,"Close");// With Animation
spinnerDialog.setCancellable(true); // for cancellable
spinnerDialog.setShowKeyboard(false);// for open keyboard by default
spinnerDialog.bindOnSpinerListener(new OnSpinerItemClick() {
@Override
public void onClick(String item, int position) {
Intent intent = new Intent(NewActivity.this,PrescriptionActivity.class);
intent.putExtra("doctor",String.valueOf(items.get(i)));
NewActivity.this.startActivity(intent);
}
});
findViewById(R.id.show).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
spinnerDialog.showSpinerDialog();
}
});
}
【问题讨论】:
-
使用
position而不是i -
我怎么没看到!谢谢,它有效。
-
final int j = i;然后get(j)也可以。但是使用position更好。
标签: java android inner-classes final