这是我的用例。我有一个带有 ListView 和 TextView 的 Activity 。 textview 是 listview 上所有数字的总和,listview 包含所有数字。我有一个针对这种情况的自定义适配器。
在 ListView 的每一行上,我都有一个按钮。此按钮将更改此行上的数字。 我想做的是:
- 当用户点击按钮时,每行的值都会改变 - 可行。
- textview 上的总和也相应改变。
这是一个简化的例子。实际上,我也有一个约束,即我有一个数据模型来表示每个角色上的数据。我无法将数据模型扩展到 DataSetObserver。
有什么帮助吗?
最佳答案
您应该创建一个监听器,它会监听增量按钮上的触摸,并在其中调用扩展您创建的接口(interface)的类的方法。 为了简单起见,在您的适配器中,您将拥有:
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();
}
});
然后是你的 Activity
public class MyActivity extends Activity implements OnIncrementListener {
//inside onCreate
myAdapter.setOnIncrementListener(this);
//end onCreate
@Override
public void onNumberIncremented() {
//Change value of your TextView here
}
}
关于android 适配器数据已更改以通知主机 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520933/