首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在使用抽屉ArrayList切换ListFragment时在ListView中保存更改

在使用抽屉ArrayList切换ListFragment时,在ListView中保存更改的方法如下:

  1. 创建一个自定义的ArrayList,用于保存ListView中的数据。
  2. 在ListFragment的onCreateView方法中,初始化ListView,并将自定义的ArrayList作为数据源。
  3. 在ListView的适配器中,使用自定义的ArrayList作为数据源,并显示在ListView中。
  4. 当用户对ListView进行更改时,例如添加、删除或修改数据,需要同时更新自定义的ArrayList和ListView的显示。
  5. 当切换到其他ListFragment时,将自定义的ArrayList保存下来,以便下次切换回来时可以恢复数据。
  6. 在切换回当前ListFragment时,重新初始化ListView,并将保存的自定义ArrayList作为数据源。

以下是一个示例代码:

代码语言:java
复制
public class CustomListFragment extends ListFragment {
    private ArrayList<String> dataList;
    private ArrayAdapter<String> adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_list, container, false);
        ListView listView = view.findViewById(android.R.id.list);

        // 初始化自定义的ArrayList
        dataList = new ArrayList<>();

        // 初始化适配器
        adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, dataList);

        // 设置适配器
        listView.setAdapter(adapter);

        return view;
    }

    // 添加数据到自定义的ArrayList和ListView中
    public void addData(String data) {
        dataList.add(data);
        adapter.notifyDataSetChanged();
    }

    // 删除数据从自定义的ArrayList和ListView中
    public void removeData(int position) {
        dataList.remove(position);
        adapter.notifyDataSetChanged();
    }

    // 修改数据在自定义的ArrayList和ListView中
    public void updateData(int position, String newData) {
        dataList.set(position, newData);
        adapter.notifyDataSetChanged();
    }

    // 保存自定义的ArrayList的数据
    public ArrayList<String> saveData() {
        return dataList;
    }

    // 恢复自定义的ArrayList的数据
    public void restoreData(ArrayList<String> savedData) {
        dataList = savedData;
        adapter.notifyDataSetChanged();
    }
}

在使用抽屉ArrayList切换ListFragment时,可以调用上述方法来保存和恢复ListView中的数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

安卓开发_浅谈Fragment之ListFragment

ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类有几个特点: 1、ListFragment 本身具只有一个ListView...视图,返回的也是一个只有ListView的布局对象 2、ListFragment 不需要指定布局,本身固定,只有一个ListView视图 3、给ListFragmentListView加载数据或者绑定适配器都只能出现...onCreateView(),因为onCreateView方法之后,ListView对象才创建, 4、给 ListView设置适配器 用setListAdapter 5、ListFragment已经实现了其...ListView的数据项的事件监听,可根需求重写onListItemClick方法 ---------------------------------------------------------...---------------------------------------------------------------------------- 下面看一个Demo 注意fragment是3.0

2K80

Android入门教程 | Fragment (加载方法与通信)

稳妥的做法是,onCreateView初始化必要的变量。比如重置一些状态值。多个 Fragment中切换需要特别注意。...Fragment 间的通信 Fragment 的 java 文件,可以使用 getActivity() 来获得调用它的 activity,然后再找到另一个 Fragment,进行通信 getActivity...Fragment定义一个接口,接口中声明你的方法 onAttach方法要求Activity实现该接口 Activity实现该方法 例如一个 activity 布置了 2 个 Fragment...EditText 和一个按钮 ListStoreFragment.java 使用前面定义的界面 public class ListStoreFragment extends ListFragment{.../// 继承自ListFragment,已经封装好了listview /// 不需要自己写ListView了 } NewItemFragment.java /** * 声明一个接口,定义向activity

62230

AndroidFragment的分屏显示处理横竖屏显示的实现方法

+ "表格布局使用<TableLayout 标记定义,表格布局,可以添加多个<TableRow 标记," + "每个<TableRow 标记占用一行,由于<TableRow 标记也是容器...,所以该标记还可添加其他组件," + "<TableRow 标记,每添加一个组件,表格就会增加一列。..., "相对布局是指按照组件之间的相对位置来进行布局,某个组件另一个组件的左边、右边、上面或下面等。"...; public class ListFragment extends android.app.ListFragment { boolean dualPane; // 是否一屏上同时显示列表和详细内容...ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); // 设置转换效果 ft.commit(); // 提交事务 } } else { // 一屏上只能显示列表或详细内容的一个内容

3K71

Android侧滑菜单之DrawerLayout用法详解

onConfigurationChanged最早的时候实现侧滑菜单功能大多时候需要通过github上一个叫做SlidingMenu的开源通过依赖包来实现,后来谷歌v4包添加了DrawerLayout...来实现这个功能,完全可以替代SlidingMenu,这里我们来学习DrawerLayout的用法 一)创建DrawerLayout 1)布局文件里将布局设置为DrawerLaout,而且因为是v4包的功能...contentFragment ).commit(); //开启事务,向容器内加入碎片,最后提交事务 mDrawerLayout.closeDrawer(mListView); //进入碎片界面关闭掉抽屉的内容...} 三)监听抽屉的打开关闭事件 使用ActionBarDrawerToggle,最早的时候v4包里,现在谷歌把它搬到了v7包里,所以要引入v7依赖包 引入v7包的时候,我遇到了一个错误,support...为了更加方便的使用抽屉,我们可以通过点击图标来开闭抽屉界面 1)onCreate()里开启app icon的功能 //开启actionBar的APP icon的功能 getActionBar()

1.9K10

Android开发之DrawerLayout实现抽屉效果

使用注意点 1、DrawerLayout的第一个子元素必须是默认内容,即抽屉没有打开显示的布局(FrameLayout),后面紧跟的子元素是抽屉内容,即抽屉布局(ListView)。...抽屉菜单的宽度应该不超过320dp,这样用户可以菜单打开的时候看到部分内容界面。...--可以程序根据抽屉菜单 切换Fragment--> <FrameLayout android:id="@+id/fragment_layout" android...widget.DrawerLayout> 这里存放的是ListView,下面会讲配合 Android M推出的NavigationView 遇到的问题 1、点击DrawerLayout的空白处的时候...解决办法:include进的那个布局里面,添加clickable=true 2、除了抽屉的布局视图之外的视图究竟放哪里 左、右抽屉和中间内容视图默认是不显示的,其他布局视图都会直接显示出来,但是需要将其放在

6K60

Android开发笔记(一百零一)滑出式菜单

办法肯定是有的,《Android开发笔记(三十五)页面布局视图》,我们提到margin和padding都可用来设置空隙,空隙的数值都是正数,其实空隙值也能是负数,负数表示该视图被隐藏了一部分,仿佛一张纸插了部分纸面到书中...所以我们可以给视图添加触摸监听器OnTouchListener,触摸坐标发生变化的同时,给菜单子页面隐入隐出对应的宽度,从而达到抽屉式拉出菜单的效果。...2、菜单默认左边页,内容默认右边页,所以首次加载视图,页面要自动滑到右边的内容页(调用scrollTo方法滚动到内容页)。...setMode为LEFT_RIGHT使用。 setSecondaryShadowDrawable : 设置第二个菜单的背景图像。setMode为LEFT_RIGHT使用。...菜单点击跳回内容页面 菜单点击的交互例子可见demo工程的ResponsiveUIActivity,主要做法步骤如下: 1、定义一个菜单点击接口OnSlidingMenuListener,其内部定义菜单点击方法

1.2K70

Android开发笔记(一百二十)两种侧滑布局

SlidingPaneLayout SlidingPaneLayout是Androidandroid-support-v4.jar推出的一个可滑动面板的布局,在前面《Android开发笔记(...一百零一)滑出式菜单》,我们提到水平布局的LinearLayout无法自动左右拉伸,必须借助于手势事件才能拉出左侧隐藏的布局,现在SlidingPaneLayout便是为了解决LinearLayout...左侧面板与右侧面板的区别在于,左侧面板布局文件的layout_gravity属性为left,而右侧面板布局文件的layout_gravity属性为right。...2、SlidingPaneLayout的侧滑面板滑动,主页面也跟着往右滑;而DrawerLayout的侧滑面板滑动,主页面是不会滑动的,也就是说,侧滑面板会遮盖住主页面的部分UI; 3、SlidingPaneLayout...主页面任何位置水平向右滑动,都会拉出左侧面板;而DrawerLayout只有主页面左右边缘水平滑动,才能拉出侧滑面板; 4、拉出侧滑面板,SlidingPaneLayout主页面的灰色阴影较浅

2K30

Android Fragment与Activity通讯的详解

一个好办法是fragment定义一个回调接口,然后activity实现之。 例如,还是那个新闻程序的例子,它有一个activity,activity中含有两个fragment。...如下例,OnArticleSelectedListener接口 fragmentA定义: public static class FragmentA extends ListFragment{...然后activity实现接口OnArticleSelectedListener,方法onArticleSelected()通知fragmentB。...当fragment添加到activity,会调用fragment的方法onAttach(),这个方法适合检查activity是否实现了OnArticleSelectedListener接口,检查方法就是对传入的...例如,如果fragmentA是一个ListFragment,每次选中列表的一项,就会调用fragmentA的onListItemClick()方法,在这个方法调用onArticleSelected(

68431

android侧滑菜单控件DrawerLayout使用方法详解

drawerLayout是Support Library包实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件MenuDrawer等的出现之后,google借鉴而出现的产物。...使用步骤: 创建一个DrawerLayout 为了添加导航抽屉,你需要在你的布局界面声明一个DrawerLayout对象作为布局的根节点。...同时DrawerLayout内部添加两个view: 添加一个View,它包含应用的主内容(当抽屉隐藏你的主要布局); 添加另一个View它包含了导航抽屉; 如下面例子所示:该布局使用了DrawerLayout...为了满足从右到左的约定,声明它的值为”start” 代替 “left”(因此这个抽屉将会在右面呈现当布局是RTL) 导航View声明时:宽度用dp为单位、高度匹配父View。...你onItemClick()方法里面做什么, 取决于你的app实现的结构. 在下面的例子, 选择每一个Item都会在主要内容的布局插入一个不同的Fragment.

2.3K10

【Android 应用开发】 Fragment 详解

, 以下是将 Fragment 嵌入 Activity 的方式; -- 布局文件嵌入 : 布局文件 使用 元素, 通过定义 android:name = "com.example.MyFragment...* onCreate() 方法, 创建 Fragement ListView 的适配器, 并将适配器设置给 ListView * onDetach() 方法, 将 Callbacks...public void setContent(String content) { this.content = content; } /* 这里只返回标题, 是为了适配 ListFragement 使用...卫生部还要求近期即将从海外回国的劳工出现发烧、头痛、关节和肌肉疼痛、喉咙痛等症状,回国前应获得所雇佣国家卫生部门的无感染证明,以避免埃博拉病毒传入菲律宾。")...出错处理 (1) 引用 不用包的 Fragment 引用 android.app.ListFragment, 不会出现错误, 而 引用 android.support.v4.app.ListFragment

1.5K50

Android EventBus实战 没听过你就out了

b、目录的Fragment中提供一个接口,然后详细信息面板去注册这个接口,当发生点击,去回调这个接口,让详细信息面板发生改变。...使用Map,Key为方法的参数类型,Value包含我们的方法。 这样onCreate执行完成以后,我们的onEventMainThread就已经以键值对的方式被存储到EventBus中了。...然后当子线程执行完毕,调用EventBus.getDefault().post(new ItemListEvent(Item.ITEMS)),EventBus会根据post实参的类型,去Map查找对于的方法...中使用的,作为的是onEventMainThread的参数。...如果在UI线程发布的事件,则加入后台任务队列,使用线程池一个接一个调用。 Async 加入后台任务队列,使用线程池调用,注意没有BackgroundThread的一个接一个。

95220

Android Fragment用法之给Activity创建事件回调

某些案例,可能需要Fragment与Activity共享事件。Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法。...当Activity通过接口接受回调,它能在必要与布局的其他Fragment共享信息。...例如,如果一个音乐播放器的应用程序一个Activity中有两个Fragment—一个用来显示歌曲列表(Fragment A),另一个用来显示歌曲信息(Fragment B),然后列表项目被选中Fragment...在下面的例子Fragment A的内部声明了onMp3ChangedListener接口。...例如,Fragment A继承了ListFragment,那么用户每次点击列表项,系统都会调用Fragment的onListItemClick()方法,然后调用onMp3Changed()方法和Activity

48810

android之Fragment(官网资料翻译)

继续之前那个新闻的例子 — 当运行在一个特别大的屏幕(例如平板电脑),应用可以Activity A嵌入2个fragment。...注意: 如果你的fragment是ListFragment的子类,它的默认实现是返回从onCreateView()返回一个ListView,所以一般情况下不必实现它....但这么做通常不必要,除非事务是其他线程的任务的一个从属. 警告:你只能在activity保存它的状态(当用户离开activity)之前使用commit()提交事务....默认情况下, activity停止后, 它会被放到一个由系统管理的用于保存activity的后台堆栈.(因此用户可以使用BACK按键导航回退到它)....然而, 仅当你一个事务期间移除fragment,显式调用addToBackStack()请求保存实例,才被放到一个由宿主activity管理的后台堆栈.

63420

Android入门教程 | Fragment 基础概念

ListFragment 显示由适配器( SimpleCursorAdapter)管理的一系列项目,类似于 ListActivity。...(请注意,显示列表的首选方法是使用 RecyclerView,而非 ListView。在此情况下,需列表布局创建包含 RecyclerView 的片段。...注意:每个片段都需要唯一标识符,重启 Activity ,系统可使用该标识符来恢复片段(也可以使用该标识符来捕获片段,从而执行某些事务,将其移除)。...如要在 Activity 执行片段事务(添加、移除或替换片段),则必须使用 FragmentTransaction 的 API。...正确的切换方式是 add(),切换 hide(),add()另一个 Fragment;再次切换,只需 hide()当前,show()另一个。

3.5K40

flutter上拉抽屉效果 flutter拖动抽屉效果

抽屉自动向下滑动关闭,可配置形状是否开启这个功能 4、 抽屉打开状态,当向下滑动抽屉,没有滑动到一定的距离放开,抽屉会自动向上滑动回到打开状态,当滑动到一定的距离放开,抽屉会自动向下滑动到关闭状态...https://github.com/zhaolongs/drag_container.git ref: master 然后加载依赖,代码如下: flutter pub get 然后使用的地方导包...), ); } 在这里通过buildListView方法来构建了一个抽屉使用的滑动视图ListView,需要注意的是,抽屉视图中一般都使用滑动视图,代码如下: ///可滑动布局构建...这里是一个列表ListView buildListView() { return ListView.builder( ///列表的控制器 与抽屉视图关联 controller...: scrollController, ///需要注意的是这里的控制器需要使用 ///builder函数回调的 控制器 itemCount: 20,

3.3K51

Flutter 构建完整应用手册-设计基础知识 顶

显示SnackBars 某些情况下,当发生某些操作可以方便地向用户简单通知。 例如,当用户列表删除消息,我们可能想通知他们消息已被删除。 我们甚至可能想给他们一个撤消行为的选择!...3.为每个选项卡创建内容 现在我们有了选项卡,我们希望选择标签显示内容。 为此,我们将使用TabBarView部件。 注意:顺序很重要,必须与TabBar的选项卡顺序相对应!...添加一个抽屉到屏幕上 采用Material Design的应用,导航有两个主要选项:选项卡和抽屉。 当没有足够的空间来支持标签抽屉提供了一个方便的选择。...在这个例子,我们将使用一个ListView。 尽管我们可以使用Column部件,但ListView在这种情况下很方便,因为如果内容占用的空间比屏幕支持的更多,它将允许用户滚动抽屉。...使用Navigator! 当用户打开抽屉,Flutter会将抽屉添加到引擎盖下的导航堆栈。 因此,要关闭抽屉,我们可以调用Navigator.pop(context)。

7.1K10
领券