2013-08-20 31 views
1

在我的應用程序中,我有一個列表活動,並且可以在列表中檢查多個項目,下次打開列表活動時如何檢查已檢查的項目?我認爲這樣做的方式是通過使用getview,但我不知道如何在我的課程中實現,因爲我不使用自定義listadapter,如果有人可以告訴我這將是多麼偉大加載時在列表中檢查的設置項目

以下是我的代碼

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); 
       } 


    } 
+0

您需要一個自定義適配器....您可以將它們設置在GetView中,並且您可以將該信息保存在偏好設置中,或者將其序列化到文件中。或者以文本形式寫入一個由您決定的文件 – snowCrabs

+0

我已經創建了自定義適配器,該如何實現它? –

回答

2

,如果你希望你的複選框來保持其狀態,你必須保存持久存儲的某處。根據複選框的用途,您可以將狀態存儲在SharedPreferences中,或者您可以創建SQLite數據庫並將值存儲在那裏。

無論哪種方式,您都可能需要一個自定義適配器來顯示您的列表並根據每個保存的狀態設置複選框狀態。

見此處查看詳情= http://developer.android.com/guide/topics/data/data-storage.html

希望有所幫助。

+1

謝謝,但我的問題是我不知道我會在哪裏設置要檢查的項目。 –

相關問題