如何在listview和调用它的活动之间建立连接

时间:2016-06-03 13:52:47

标签: android listview

我目前正在尝试制作购物清单活动。我的活动包括列表视图和文本视图(显示所有项目的总价格)。

对于项目名称,数量和小计价格将在列表视图中,用户可以更改我想要更改小计和总价格的数量。

我已经成功更改了列表视图中的小计价格,但问题是如何更改"外部"列表视图。

我做了更改listview适配器类中的小计价格的逻辑,有没有办法可以从适配器类外部检测到listview项的更改?

1 个答案:

答案 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
  }
};