【发布时间】:2016-05-20 13:45:49
【问题描述】:
我有一个扩展 ArrayAdapter 类,它在 getView 函数中为每个列表项膨胀一个带有 EditText 和 Button 的布局
@Override
public View getView(int position, final View convertView, ViewGroup parent) {
View item = convertView;
if (item == null){
LayoutInflater inflater = LayoutInflater.from(getContext());
item = inflater.inflate(R.layout.lista_clientes, null);
}
TextView p = (TextView)item.findViewById(R.id.txtProd);
Button bMas = (Button)item.findViewById(R.id.btnMas);
Button bMen = (Button)item.findViewById(R.id.btnMenos);
EditText txtCant = (EditText) item.findViewById(R.id.txtCantidad);
bMas.setOnClickListener(new View.OnClickListener() {
Integer n = 0;
@Override
public void onClick(View v) {
n++;
txtCant.setText(String.valueOf(n));//ERROR (txtCant)
}
});
p.setText(datosProd.get(position).getProducto());
return item;
}
但是这会给出一个错误:“从内部类中访问变量 txtCant 需要声明为 final”如果我这样做(declarete fina)我不能使用 setText。我该如何解决?
【问题讨论】:
-
查看列表视图适配器的视图支架模式
-
是内部类还是外部类的成员?如果在增加 EditText 的值时外部类不起作用
标签: android class listview android-arrayadapter