android listview 顺序在调用 notifyDataSetChanged 时改变

标签 android listview baseadapter

全部。 当我使用 notifyDataSetChanged() 时, ListView 的显示顺序将发生变化。

像这样

  • 3
  • 2
  • 1

    创建当前 Activity 的时间。但是当我更改数据时。会是

  • 1
  • 2
  • 3

我不想改变顺序,我不明白为什么会这样。

这是我的适配器类中的一段代码

    public static class ItemAdapter extends BaseAdapter {

        private String[] mData;
        private LayoutInflater mInflater;

// I called this method  to change data
        public void setEditText(int position, final String item) {
            mData[position] = item;
            notifyDataSetChanged();
        }



}

我在这样的对话框中更改数据

       builder = new AlertDialog.Builder(ct);
                            builder.setTitle(R.string.pickStatus)
                                    .setView(edBuffer)
                                    .setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
                                                @Override
                                                public void onClick(
                                                        DialogInterface dialog, int id) {
                                                    // TODO Auto-generated method stub
                                                    canPop = true;
                                                    final String tmp = edBuffer.getText().toString();
                                                    KbonezLog.e(String.format( "set into key %d", key)); 
//use mData key to set value
setEditText(key, tmp);
dialog.dismiss();
}})

最佳答案

如果不查看适配器的完整源代码,很难判断发生了什么,但这听起来像是 getView() 实现中的一个问题。每次调用 getView() 时,您必须重新绑定(bind)所有数据。

关于android listview 顺序在调用 notifyDataSetChanged 时改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5049613/

相关文章:

android - 我在 Android Q 中获取的 IMEI 为空?

qt - 动画 `positionViewAtIndex`

xml - 无法在Appium中使用xpath定位元素

java - 如何从带有基本适配器的 GridView 中选择单个编辑文本框?

android - Playit 应用程序如何防止视频在其他媒体播放器中播放?它使用什么技术

Android——如何管理多个布局文件才符合DRY原则?

javascript - 点击按钮后如何将 ListView 向下滚动到底部(例如使用 scrollToIndex )? NativeScript-Vue

java - 未调用 Android 自定义 BaseAdapter getView

java - 如何为RecyclerView设置BaseAdapter?

android - 使用渐变阴影查看