@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
viewholder holder;
if(vi==null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
vi = inflater.inflate(R.layout.row, null);
holder=new viewholder();
holder.tview1=(TextView)vi.findViewById(R.id.MXname);
holder.tview1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Log.d("Name view Click","in the list");
}
}
);
holder.tview2=(TextView)vi.findViewById(R.id.MXtnumber);
holder.tview2.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Log.d("Number view Click","in the list"+position);
}
}
);
holder.imageview=(ImageView)vi.findViewById(R.id.MXdialer);
holder.imageview.setTag(position);
holder.imageview.setOnClickListener(new OnClickListener(){
public void onClick(View v){
//Integer no = new Integer(0);
// get the number to dial and pass to DialNo
//madapter.this.DialNo();
Log.d("Dialer view Click","in the list");
}
}
);
vi.setTag(holder);
}
else
holder=(viewholder)vi.getTag();
return vi;
}
}
}
请参阅上面与 listview/android 相关的 getview() 适配器代码草稿,当我尝试在上面的任何 onclick 方法中使用“位置”参数时,我得到错误“无法引用内部类中的非最终变量位置定义用不同的方法” 我能做的唯一解决方法是将其设为最终变量,然后在 onclick() 方法中访问该最终变量。请建议是否有任何其他方法可以在不使用最终变量的情况下执行此操作。提前致谢