我目前正在尝试制作购物清单活动。我的活动包括列表视图和文本视图(显示所有项目的总价格)。
对于项目名称,数量和小计价格将在列表视图中,用户可以更改我想要更改小计和总价格的数量。
我已经成功更改了列表视图中的小计价格,但问题是如何更改"外部"列表视图。
我做了更改listview适配器类中的小计价格的逻辑,有没有办法可以从适配器类外部检测到listview项的更改?
答案 0 :(得分:1)
解决方案可以是通过适配器的构造函数传递Total TextView的实例。
Adapter myAdapter = new (context, txtTotal, ...);
然后,在适配器的getView方法中,当您编写数量时,当前您正在更改小计文本视图。使用text textview实例首先获取double值,添加或减去更改。最后将结果放在总textview中。
另一种解决方案是在更改可以发送操作的小计TextView时使用LocalBroadcastManager(来自适配器类)。 例如:
Intent intent = new Intent("change-total-event");
intent.putExtra("xxxx", "20.50");//add data if you need
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
然后,在您的活动中,您需要注册广播接收器,如果您想要执行此选项,请按照教程进行操作。最后,更改广播接收器中textview的值。
// handler for received Intents for the "change-total-event" event
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Extract data included in the Intent
String value = intent.getStringExtra("xxxx");
//change the total textview
}
};