【发布时间】:2014-01-14 17:17:57
【问题描述】:
在编写android代码时,我遇到了以下事情
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
convertView = _inflater.inflate(R.layout.abstract_list_row_item, null);
move.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// if btn is clcked then data is changed an we need to refresh framents
MainAppDataController.getInstance().setIsDataChanged(true);
callWhiteListDB = new CallWhiteListDB(_context);
callWhiteListDB.openToWrite();
callWhiteListDB.insert(allContacts.get(position).name, allContacts.get(position).number);
callWhiteListDB.close();
callBlackListDB = new CallBlackListDB(_context);
callBlackListDB.openToWrite();
callBlackListDB.deleteSingleItem(allContacts.get(position).dbId);
callBlackListDB.close();
populateList(position);
notifyListView(view);
}
});
return convertView;
在上面的示例中,getView() 方法具有 int position、View convertView、ViewGroup parent 等参数。我的观察是在我开始在onclick() 中使用位置变量时,Eclipse 抛出编译错误并要求将位置设置为最终位置。为什么我要把它定为final? AFAIK final 用于常量。
【问题讨论】: