gpt4 book ai didi

Android 从适配器自定义类调用 findViewById

转载 作者:行者123 更新时间:2023-11-29 17:45:57 26 4
gpt4 key购买 nike

下午好

所以我有一个带有自定义适配器的自定义 ListView,该适配器具有一个项目,该项目是每一行的复选框。在我的 getView 中,我为我的复选框实现了 setOnCheckedChangeListener 和 onCheckedChanged 处理程序。

现在,问题是:

每当我选中/取消选中列表中的一个项目时,我想用我想要的值更新一个外部 TextView(假设每个项目都有一个相关的价格,所以我想在列表下方显示总价) .

我应该如何从适配器的 getView 到达“外部” View ?我还有什么其他解决方法?

我在这里留下了我自定义适配器的 getView 函数的部分代码:

CheckBox name = (CheckBox) view.findViewById(R.id.product);
name.setText(content[i][0]);
final View v = view;
final int position = i;
name.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton group, boolean isChecked) {
setCheckedItem(position);
EditText quantity = (EditText) v.findViewById(R.id.product_quantity);
content[position][3] = quantity.getText().toString();
Iterator<String> it = getCheckedItems().values().iterator();
Double total = 0.0;
for (int i=0;i<getCheckedItems().size();i++){
Integer quantity_p = Integer.parseInt(getItem(position)[3]);
Double price = Double.parseDouble(getItem(position)[2]);
total += quantity_p*price;
}
TextView total_price = (TextView) findViewById(R.id.total_products_price);
total_price.setText(total.toString());
}
});

请注意最后两行:我知道我不能调用 findViewById,但我现在不知道该怎么做。任何建议都会很好,谢谢。

最佳答案

将您的适配器类放在 Activity 类中。在主 Activity 类中声明 TextView total_price然后

total_price = (TextView) findViewById(R.id.total_products_price);

在你的创作中。然后您可以在 onCheckedChanged 中访问 total_price。试试这个,它可能会起作用。

关于Android 从适配器自定义类调用 findViewById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com