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

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

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

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#000000"

android:orientation="horizontal" >

android:id="@+id/layoutImage"

android:layout_width="0dp"

android:layout_height="30dp"

android:layout_weight="2"

android:background="@drawable/..."/>

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" />

一旦定义,自定义ArrayAdapter的第二个参数就是布局,所以你只需传递R.id.your_new_layout引用,就会用它创建行.

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

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

>尝试使用onDragEvent实现此目的.根据this,您可以处理拖动ListView的一行以处理某些事件.通过这种方式,您可以看到用户放置项目的位置,并重新排序适配器中的List以保持这种状态.

>外部图书馆.似乎有一些外部库已经实现了这一点,例如,您可能希望看到this,this和this.

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值