我寫了下一個android代碼。變量的位置必須聲明爲final。我不明白爲什麼......當我使用Eclipse調試器時,它確實可以識別行中的位置值:myMovieList.remove(position); ?當我必須使用最後的聲明
我會感謝您對此問題的幫助。 泰迪
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myListView = (ListView) findViewById(R.id.mylistView);
myListView.setOnItemClickListener(MainActivity.this);
.......
.......
.......
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
showDeleteDialog(position);
}
private void showDeleteDialog(final int position) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Delete ??");
builder.setMessage("Are you shure....");
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
myMovieList.remove(position);
objAdapter.notifyDataSetChanged();
}
});
builder.show();
}
'position'必須是'final',因爲你是從一個匿名內部類(你用於正面按鈕的那個)引用它的。 – CommonsWare 2014-10-09 12:02:17