更改了android适配器数据以通知主机活动

时间:2014-12-17 08:10:07

标签: android android-listview adapter

这是我的用例。我有一个listview和textview的活动。 textview是listview上所有数字的总和,listview包含所有数字。我有一个针对这种情况的自定义适配器。

在列表视图的每一行上,我都有一个按钮。此按钮将更改此行上的数字。 我想做的是:

  1. 当用户点击按钮时,每行的值都会更改 - 可行。
  2. textview上的总和也会相应变化。
  3. 这是一个简化的例子。实际上,我还有一个约束,即我有一个数据模型来表示每个角色的数据。我无法将数据模型扩展到DataSetObserver。

    任何帮助?

1 个答案:

答案 0 :(得分:6)

你应该创建一个监听器,它监听你的增量按钮上的触摸,并在里面调用扩展你创建的接口的类的方法。 为了方便起见,您可以在适配器中使用:

public interface OnIncrementListener{
    onNumberIncremented();
}

private OnIncrementListener mListener;

//This is inside getView method of your adapter
myButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mListener.onNumberIncremented();
        }
});

然后你的活动

public class MyActivity extends Activity implements OnIncrementListener {

   //inside onCreate
   myAdapter.setOnIncrementListener(this);
   //end onCreate

    @Override
    public void onNumberIncremented() {
         //Change value of your TextView here
    }
}