gpt4 book ai didi

c# - Xamarin : Get data from ArrayAdapter after rotating screen

转载 作者:行者123 更新时间:2023-11-29 20:23:41 25 4
gpt4 key购买 nike

当我旋转屏幕时,ArrayAdapter 中的数据将会消失。有人知道如何解决吗?

我在 MainActivity.cs 中的代码

private int count = 0;
private IList<string> intervals = new List<string>();
private ArrayAdapter<string> listAdapter;

protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
this.timeView = FindViewById<TextView>(Resource.Id.timeView);

this.interval = FindViewById<ListView>(Resource.Id.interval);
this.listAdapter = new ArrayAdapter<string>(this,Android.Resource.Layout.SimpleListItem1, intervals);
this.interval.Adapter = listAdapter;

RunOnUiThread(() => { listAdapter.NotifyDataSetChanged();});
this.timeView.Click += (IntentSender, eventArgs) => addInterval();
}

private void addInterval() {
this.listAdapter.Insert(++this.count + "\t\t\t\t" + string.Format("{0:hh\\:mm\\:ss\\.fff}",this.accumulatedTime),0);
}

提前致谢!

最佳答案

当您旋转屏幕时,您当前的 Activity 将被拆除。任何没有 id 的项目都将失去它的值(value)。

因此尝试使用

public void onSaveInstanceState(Bundle savedState) {
super.onSaveInstanceState(savedState);
String[] aavalues = aAdapter.getValue();
savedState.putStringArray("enter a key value here", aavalues);}

您必须定义一个 getValue 方法来获取适配器中的值。

然后由于您的 Activity 正在被销毁,它将再次进入 oncreate

在那里初始化你的适配器

    String[] avalues = savedInstanceState.getStringArray("the key value from before");
if (values != null) {
aAdaptor = new MyAdaptor(avalues);}

关于c# - Xamarin : Get data from ArrayAdapter after rotating screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32829873/

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