gpt4 book ai didi

c# - 加载时在列表 Activity 中设置项目检查

转载 作者:行者123 更新时间:2023-11-29 21:36:19 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个列表 Activity ,您可以在其中检查列表中的多个项目,我如何才能在下次打开列表 Activity 时检查已检查的项目?我认为实现它的方法是通过使用 getview 但我不知道如何在我的类(class)中实现它,因为我没有使用自定义列表适配器,如果有人可以告诉我那会怎样很棒

下面是我的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using System.Linq;

namespace BoostITAndroid
{
[Activity(Label = "My Activity")]
public class Selector : ListActivity
{

int[] numlist = new int[45];
String[] Options;
int[] OptionsID;
String item;
int counter = 0;
Button save, cancel;
int vehicleId;
int category;
private List<AvailableFeatures> list;

protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);

List<Makes> listmakes = VehicleAssetsDB.GetMakes();
Options = new String[listmakes.Count];
OptionsID = new int[listmakes.Count];
Options = listmakes.Select(Makes => Makes.Make).ToArray();
OptionsID = listmakes.Select(Makes => Makes.ID).ToArray();
ListAdapter = new ArrayAdapter<String>(this, Android.Resource.Layout.SimpleListItem1, Options);


}
}

}

下面是我的onclicklistener

 protected override void OnListItemClick(ListView l, View v, int position, long id)
{

l.ChoiceMode = ChoiceMode.Multiple;
Android.Util.SparseBooleanArray checkedItems = l.CheckedItemPositions;

if (!checkedItems.Get(position))
{
l.SetItemChecked(position, false);
}

if (checkedItems.Get(position))
{
l.SetItemChecked(position, true);
}


}

最佳答案

如果您希望您的复选框保留它们的状态,您必须将其保存在持久存储中的某个地方。根据复选框的用途,您可以将状态存储在 SharedPreferences 中,或者您可以创建一个 SQLite 数据库并将值存储在那里。

无论哪种方式,您都可能需要一个自定义适配器来显示您的列表并根据每个复选框的保存状态设置复选框状态。

详情请看这里= http://developer.android.com/guide/topics/data/data-storage.html

希望对您有所帮助。

关于c# - 加载时在列表 Activity 中设置项目检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18338862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com