android 适配器数据已更改以通知主机 Activity

标签 android android-listview adapter

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

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

  1. 当用户点击按钮时,每行的值都会改变 - 可行。
  2. 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/

相关文章:

android - 蓝牙两次而不是一次添加到 ListView

Android Fedor 的延迟加载将图像传递给其他 Activity

java - 在 doInBackground 方法中从另一个异步任务调用 AsyncTask?

android - Jenkins 无法启动模拟器

android - 具体的 EditText Android

android - Admob 与 Android : unable to parse android:configChanges in manifest

android - 如何操作 listview 以便特定电话号码始终显示在顶部?

Android 聊天应用笑脸

android - ListView 中的字母索引..忽略部分索引

单个 Activity 上的 Android 多个 ListView 不显示项目