C
celli83
Neues Mitglied
- 0
Hallo,
ich bastle mir gerade eine ListView. Ich möchte verschiedene Zeilen selektieren. Das funktioniert auch. Wenn ich nun die App auf meinem Smartphone minimiere (z.B. Klick auf das Haus) und sie im Anschluss wieder maximiere, dann sind die selektierten Zeilen nicht mehr aktiviert. Im Debugger habe ich festgestellt, dass das Programm komplett von vorn wieder anfängt und somit meine Einträge (selektierten Zeilen) nicht mehr vorhanden sind. Wie kann ich das Problem lösen? Kann man Variablen, in diesem Fall eine List, so speichern, dass sie nach dem maximieren der App noch vorhanden sind?
Ich habe folgende Klassen. Die Codes sind teilweise aus dem Internet.
Meine Activity sieht so aus:
Besten Dank für die Unterstützung.
ich bastle mir gerade eine ListView. Ich möchte verschiedene Zeilen selektieren. Das funktioniert auch. Wenn ich nun die App auf meinem Smartphone minimiere (z.B. Klick auf das Haus) und sie im Anschluss wieder maximiere, dann sind die selektierten Zeilen nicht mehr aktiviert. Im Debugger habe ich festgestellt, dass das Programm komplett von vorn wieder anfängt und somit meine Einträge (selektierten Zeilen) nicht mehr vorhanden sind. Wie kann ich das Problem lösen? Kann man Variablen, in diesem Fall eine List, so speichern, dass sie nach dem maximieren der App noch vorhanden sind?
Ich habe folgende Klassen. Die Codes sind teilweise aus dem Internet.
PHP:
public class HomeScreenAdapter : BaseAdapter<TableItem>
{
List<TableItem> items;
Activity context;
public HomeScreenAdapter(Activity context, List<TableItem> items)
: base()
{
this.context = context;
this.items = items;
}
public override long GetItemId(int position)
{
return position;
}
public override TableItem this[int position]
{
get { return items[position]; }
}
public override int Count
{
get { return items.Count; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = items[position];
View view = convertView;
if (view == null)
view = context.LayoutInflater.Inflate(Resource.Layout.CustomView, null);
view.FindViewById<TextView>(Resource.Id.Head).Text = item.Heading;
view.FindViewById<TextView>(Resource.Id.Subhead).Text = item.SubHeading;
return view;
}
}
PHP:
ListView listView;
TableItem ti;
List<TableItem> li = new List<TableItem>();
HomeScreenAdapter homeAdapter;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
listView = FindViewById<ListView>(Resource.Id.listView1);
for (int i = 0; i < 50;i++ )
{
ti = new TableItem();
ti.Heading = "Head" + i.ToString();
ti.SubHeading = "Sub" + i.ToString();
ti.ImageResourceId = 0;
li.Add(ti);
}
homeAdapter = new HomeScreenAdapter(this, li);
listView.Adapter = homeAdapter;
listView.ItemClick += OnListItemClick;
}
void OnListItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
if(li[e.Position].Checked)
li[e.Position].Checked = false;
else
li[e.Position].Checked = true;
listView.InvalidateViews();
}