我在片段类之一中使用了5个以上的微调器,所有微调器都从String数组列表中加载,当我从另一个片段调用此片段时加载视图需要2到3秒钟,这种情况只有在我发生时才会发生使用静态数据(预定义字符串数组)这里我添加了我的代码,我在OnViewCreated
方法中设置所有适配器
// Create an ArrayAdapter using a simple spinner layout and cities array
adapterCity = new SpinnerViewAdapter(c);
// Create an ArrayAdapter using a simple spinner layout and states array
adapterState = new SpinnerViewAdapter(c);
// Create an ArrayAdapter using a simple spinner layout and countries array
adapterCountry = new SpinnerViewAdapter(c);
// Create an ArrayAdapter using a simple spinner layout and heightFt array
adapterHeightFt = new SpinnerViewAdapter(c);
// Create an ArrayAdapter using a simple spinner layout and Height in Inch array
adapterHeightIn = new SpinnerViewAdapter(c);
sCity.setAdapter(adapterCity);
sCountry.setAdapter(adapterCountry);
sState.setAdapter(adapterState);
sHeight1.setAdapter(adapterHeightFt);
sHeight2.setAdapter(adapterHeightIn);
adapterCity.addAll(Arrays.asList(ListCity));
adapterCountry.addAll(Arrays.asList(ListCountry));
adapterState.addAll(Arrays.asList(ListState));
adapterHeightFt.addAll(Arrays.asList(ListHeightFt));
adapterHeightIn.addAll(Arrays.asList(ListHeightIn));
我尝试添加使用线程,我也尝试了后台任务将项目列表添加到微调器中,但对我没什么用,有人建议我更好的选择,以避免加载时间?
答案 0 :(得分:1)
如果您的微调列表是静态的,那么移动string.xml
布局文件中的所有列表它将起作用
答案 1 :(得分:0)
我将静态字符串数组项目移动到string.xml
,同时我尝试在onPostexecute
中添加AsyncTask
中的所有微调器项目,现在像其他片段一样像往常一样加载,这里我添加了我的工作代码。
@SuppressLint("StaticFieldLeak")
private class BackgroundTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... urls) {
return null;
}
@Override
protected void onPostExecute(Void result) {
adapterCity.addAll(ListCity);
adapterCountry.addAll(ListCountry);
adapterState.addAll(ListState);
adapterHeightFt.addAll(ListHeightFt);
adapterHeightIn.addAll(ListHeightIn);
}
}