android 适配器数据更改为通知主机活动
Posted
技术标签:
【中文标题】android 适配器数据更改为通知主机活动【英文标题】:android adapter data changed to notify host activity 【发布时间】:2015-02-15 17:26:06 【问题描述】:这是我的一个用例。我有一个带有列表视图和文本视图的活动。文本视图是列表视图上所有数字的总和,列表视图包含所有数字。我有一个针对这种情况的自定义适配器。
在列表视图的每一行,我都有一个按钮。此按钮将更改此行上的数字。 我想做的是这样的:
-
当用户单击按钮时,每行的值都会更改 - 可行。
textview 上的总和也会相应改变。
这是一个简化的示例。实际上,我也有一个约束,即我有一个数据模型来表示每个角色的数据。我无法将数据模型扩展到 DataSetObserver。
有什么帮助吗?
【问题讨论】:
【参考方案1】:您应该创建一个侦听器,它侦听您的增量按钮上的触摸,并在其中调用扩展您创建的接口的类的方法。 为方便起见,在您的适配器中,您将拥有:
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
【讨论】:
这个解决方案服务于我的目的。谢谢。 需要在接口方法void onNumberIncremented();
添加返回类型以上是关于android 适配器数据更改为通知主机活动的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 将自定义适配器添加到 AsyncTask