gpt4 book ai didi

android - ArrayList 突然变为 null,以前不是 null

转载 作者:行者123 更新时间:2023-11-29 14:15:10 26 4
gpt4 key购买 nike

我有一个 LocationMapActivity,它使用 google map v2 来显示人员的位置(根据人员 ID 从数据库中获取位置)。我使用异步任务 从数据库中获取位置并在 map 上添加标记和路线。

我在两种情况下使用 LocationMapActivity(根据人员 ID 显示标记/路线):

  1. 点击 Show all people om map Button-LocationMapActivity 显示描述每个人的标记。如果单击标记,则通过再次向 LocationMapActivity 发送带有个人 ID 的 Intent 来显示特定人的路线。

  2. 单击幻灯片放映 map 按钮 - LocationMapActivity 首先显示描绘所有人的所有标记。然后在 10 秒后重新渲染 map 并显示每个人的路线(一个接一个,间隔 10 秒)。请引用我的代码接受的答案:How to place Multiple MapViews v1 inside a ViewFlipper .

PROBLEM : Everything works perfectly in scenario 1. But In scenario 2 the ArraryList latLngArrlist losses value suddenly!.I have debugged the code the array list is never set to null it randomly gets null. These arrayList are private but not local variables.

注意::在渲染下一个 map View 之前,我使用重置函数清除所有数组列表和非局部变量。

我的代码很长,所以我只在下面发布相关的代码:

LocationMapActivity

        public class LocationMapActivity extends Activity implements OnClickListener,
OnMarkerClickListener {


private ArrayList<String> latLngCheckinTimeList = null;//
private ArrayList<String> addressList = null;//
private ArrayList<LatLng> latLngArrList = new ArrayList<LatLng>();//
private ArrayList<Long> checkinTimeArrList = new ArrayList<Long>();//
private String selectedFieldOfficerId;
private GoogleMap googleMap;
private List<List<HashMap<String, String>>> route = null;
private HashMap<Marker, String> markerHmap = new HashMap<Marker, String>();//


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity_screen);
context = this;
//person ID according to which will be displayed
selectedFieldOfficerId = getIntent().getStringExtra(
AllConstants.FOIdKey);
latLngCheckinTimeList = new ArrayList<String>();

//my code

googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.mapView)).getMap();

mapTask = new MapTask(context, selectedFieldOfficerId, this);
mapTask.execute();// async task for url of route

}

googleMap.setOnMarkerClickListener(this);

}


}

MapTask 异步任务

@Override
protected Void doInBackground(Void... params) {

helper = new EmployeeHelper(getApplicationContext());

if (!fieldOfficerId.equals(AllConstants.ShowAllFOInMap)
&& !fieldOfficerId.equals(AllConstants.ShowAllFOInMapSlide)) {
// map for specific fo
showSpecificFoMap(fieldOfficerId);
} else if (fieldOfficerId.equals(AllConstants.ShowAllFOInMap)) {
// show all emp in map
showAllFoOnMap((AllConstants.ShowAllFOInMap));
} else if (fieldOfficerId.equals(AllConstants.ShowAllFOInMapSlide)) {
// show slide show
//PROBLEM HERE
Log.i("map", "in slide show if ");
ArrayList<String> foIdList = new ArrayList<String>();
Boolean condition = true;
while (condition && !isFinishActivity) {
// runs only once
Log.i("map", "in slide show if WHILE");
mapScreenshotsNo = 1;
try {
foIdList = showAllFoOnMap((AllConstants.ShowAllFOInMapSlide));//ARRAYLIST BECOMES NULL IN THIS FUNCTION
} catch (Exception e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
public void run() {
if (progressDialog != null
&& progressDialog.isShowing()
&& !isFinishActivity)
progressDialog.dismiss();
}
});
try {
util.haveASleep(slideShowInterval);
} catch (Exception e) {

e.printStackTrace();
}


resetVariables();
mapScreenshotsNo++;
if (foIdList != null) {
try {
mapScreenshotsNo = showEachFOMap(foIdList,
mapScreenshotsNo);
} catch (Exception e) {

e.printStackTrace();
}
resetVariables();
}

condition = false;

}
if (mapTask != null)
mapTask.cancel(true);
// mapActivity.finish();
}
return null;
}

我知道数组列表正在失去值(value)。但我不知道如何将 ArrayList 类型保存在持久内存中,因为它不是原始类型。几天以来我一直在努力解决这个问题。

编辑:ArrayList 突然变为空值,任何设置模式。有时代码运行良好,有时它在数组列表中给出空指针。通常空指针是由ArrayList latLngArrList 引起的

求助!!!

谢谢。

最佳答案

尝试更改这些变量值初始化:

private ArrayList<String> latLngCheckinTimeList = null;

只是

private ArrayList<String> latLngCheckinTimeList;

并将变量创建移至onCreate:

private  ArrayList<LatLng> latLngArrList = new ArrayList<LatLng>();//

创建时..

latLngArrList = new ArrayList<LatLng>();

关于android - ArrayList 突然变为 null,以前不是 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519213/

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