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

Lia*_*jun 2 android adapter android-listview

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

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

  1. 当用户单击该按钮时,每行的值都会更改 - 可行.
  2. textview上的总和也相应地改变.

这是一个简化的例子.实际上,我还有一个约束,即我有一个数据模型来表示每个角色的数据.我无法将数据模型扩展到DataSetObserver.

任何帮助?

The*_*Fox 7

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

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();
        }
});
Run Code Online (Sandbox Code Playgroud)

那你的活动

public class MyActivity extends Activity implements OnIncrementListener {

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

    @Override
    public void onNumberIncremented() {
         //Change value of your TextView here
    }
}
Run Code Online (Sandbox Code Playgroud)