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 适配器数据更改为通知主机活动的主要内容,如果未能解决你的问题,请参考以下文章

VM无法将网络更改为桥接状态:没有未桥接的主机网络适配器

Android Studio 将自定义适配器添加到 AsyncTask

无法仅将USB连接更改为充电

将 listview 适配器更改为回收器视图适配器

在switch语句中将Android中的字符串从硬编码更改为字符串资源

在活动中更改列表视图的按钮可见性