android imobile

0 投票
34 浏览
 @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        if (m_IsFirstOpen) {
            m_IsFirstOpen = false;
            return;
        }

        MyToast.showMyToast(DrawerActivity.this, "选择了" + m_spSection.getSelectedItem().toString(), Toast.LENGTH_SHORT);
        try {

            if (_dsInfo != null) {
                _dsInfo.dispose();
            }

            m_MapControl.getMap().close();
            _dsInfo = new DatasourceConnectionInfo();
            String section = ServerConfig.getMapMap().get(m_spSection.getSelectedItem().toString());
            if (section == null) return;
            _dsInfo.setServer(ServerConfig.URL_CHECK_SECTION + section);

            LogUtils.i("MapUrl=-------------", ServerConfig.URL_CHECK_SECTION + section);

            _dsInfo.setEngineType(EngineType.Rest);
            _dsInfo.setAlias(section);  //标识  每个标段,要设置不一样的标识
            _ds = m_workspace.getDatasources().open(_dsInfo);

            if (_ds != null) {
                m_MapControl.getMap().getLayers().add(_ds.getDatasets().get(0), true);
                String mapName = m_MapControl.getMap().getName();
                LogUtils.i("MapName=-------------", mapName);
                m_MapControl.getMap().refresh();
                hideLoading();

大神好:如上代码,我在spinner里设置了每个数据源的URL,同时设置了标识Alias,然后打开,每項点击第一次的时候可以正常打开,然后第二次选到了,提示数据源别名已被占用,原因是设置标识重复了吗,该如何处理这一步呢?

最新提问 2月 5 分类:  34次浏览 | 用户: Alan (5 分)

1个回答

0 投票
建议你打开后的在线数据源就不要再打开,这个会影响性能的,在打开前可以判定这个别名的数据源在当前的工作空间中是否存在,如果存在就不用再次打开,不存在就打开。
最新回答 2月 5 用户: 王国新 名扬四海 (1,575 分)
已经解决了,谢谢!
...