android – App偏好设置的可编辑项目列表?

android – App偏好设置的可编辑项目列表?,第1张

概述我正在尝试在我的应用程序首选项上执行类似于iOS可编辑UITableView的 *** 作.基本上它是一个列表,用户可以添加项目,删除它们或重新排序它们.我确定这是一个常见的问题,但我没有找到任何关于如何做的例子. 现在我试图通过嵌套两个PreferenceScreens并在它们之间移动项目来实现: 我将项目存储在两个不同的数组(“添加”项目和“未添加”项目)并使用addPreference()动态构建两 我正在尝试在我的应用程序首选项上执行类似于iOS可编辑UItableVIEw的 *** 作.基本上它是一个列表,用户可以添加项目,删除它们或重新排序它们.我确定这是一个常见的问题,但我没有找到任何关于如何做的例子. @H_404_7@

@H_404_7@现在我试图通过嵌套两个PreferenceScreens并在它们之间移动项目来实现:

@H_404_7@我将项目存储在两个不同的数组(“添加”项目和“未添加”项目)并使用addPreference()动态构建两个屏幕但是我不确定这是一个好主意,也不知道如何让用户删除和重新订购商品.

@H_404_7@如何才能做到这一点?

解决方法 由于我无法找到重新排序PreferenceScreen的方法,因此还有另一种方法.例如,您可以定义一个Activity,并在两个ListVIEws中定义.我们的想法是在它们两个上使用visibility属性,所以每次你将其中一个设置为可见而另一个,或者如果你需要做一些像你的第一个截图那样去掉它们. @H_404_7@

@H_404_7@您需要为每个ArrayAdapter扩展一个ArrayAdapter(或者只有一个ArrayAdapter并将其用于ListVIEw,更改布局或初始数据集,或两者都有).就布局而言,您可以简单地使用linearLayout定义自定义布局,并在其中定义ImageVIEw和TextVIEw以实现屏幕截图中显示的布局效果,如下所示:

@H_404_7@

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:background="#000000"    androID:orIEntation="horizontal" >    <ImageVIEw        androID:ID="@+ID/layoutimage"        androID:layout_wIDth="0dp"        androID:layout_height="30dp"        androID:layout_weight="2"         androID:background="@drawable/..."/>    <TextVIEw        androID:ID="@+ID/layoutText"        androID:layout_wIDth="0dp"        androID:layout_height="wrap_content"        androID:layout_weight="8"        androID:layout_gravity="left"        androID:numlines="1"        androID:textSize="18sp" /></linearLayout>
@H_404_7@一旦定义,自定义ArrayAdapter的第二个参数就是布局,所以你只需传递R.ID.your_new_layout引用,就会用它创建行.

@H_404_7@对于项目的删除,它很容易实现,因为您可以在自定义适配器的getVIEw()方法中定义onClickListener()并从数据集中删除该项目(您将在ArrayAdapter中跟踪). ListVIEw具有notifyDataSetChanged()方法,该方法将自动从列表中删除该项目,您甚至可以添加动画以使其在视觉上更具吸引力.

@H_404_7@在这种情况下,重新排序选项似乎是最费力的. ListVIEw默认情况下会以“自己的顺序”呈现行,这意味着基本上你会看到它未排序.这可以避免在ArrayAdapter上调用.sort()方法,但是你不希望这样,因为你想让你的用户按照他们的方式重新排序列表,所以我只想到了2个想法(没有他们测试过):

@H_404_7@>尝试使用onDragEvent实现此目的.根据this,您可以处理拖动ListVIEw的一行以处理某些事件.通过这种方式,您可以看到用户放置项目的位置,并重新排序适配器中的List以保持这种状态.
>外部图书馆.似乎有一些外部库已经实现了这一点,例如,您可能希望看到this,this和this.

@H_404_7@这种方法的主要好处是,您可以在同一个Activity中拥有两个数据集,您可以在这两个数据集中访问两个适配器,并且您可以轻松地将数据从一个实例移动到另一个实例,并使用VIEw调用setVisibility().您需要的ListVIEw上的VISIBLE或VIEw.GONE,因此它使流程更容易.

总结

以上是内存溢出为你收集整理的android – App偏好设置的可编辑项目列表?全部内容,希望文章能够帮你解决android – App偏好设置的可编辑项目列表?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1125169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存