1

有谁知道如何从快速搜索框中激活地图?

我的应用程序显示用户位置和从我的网站中提取的一些地方。我按照 Google Android 文档的说明添加了一个快速搜索框,但我无法使用它来启动地图。我可以让它打印查询,所以我知道它正在获取数据,但是当我尝试将查询汇总到一个类或设置内容视图时它崩溃了!(我已经注释掉了导致崩溃的行)。

public class SearchActivity extends MapActivity {  
    public boolean touched = false; 
    private MapView mapView;
    Main mc = new Main();

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        //setContentView(R.layout.main);
        //mapView = (MapView) findViewById(R.id.mapView);
        //mapView.getController();
        handleIntent(getIntent());
    }  

    private void handleIntent(Intent intent) {
        if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
            // handles a search query
            String query = intent.getStringExtra(SearchManager.QUERY);
            //mc.activateMapFromQuery(query);
        }
    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
} 

这是我可以在 LogCat 中阅读的内容,我认为这可能是相关的:

Starting Activity: Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.maps.android.example/com.maps.android.example.Main paused=false}
onSignalStrengthChanged
onSignalStrengthChanged
grantUriPermission URI=file:///data/local/tmp/Example.apk
No content provider found for:
Force stopping package com.maps.android.example uid=10115
WIN DEATH: Window{40834690 com.maps.android.example/com.maps.android.example.Main paused=false}
4

1 回答 1

1

我找到了解决方案!

在上面的 CatLog 中,它在启动 Activity 之后显示 onSignalStrengthChanged。这让我意识到 GPS 在尝试执行搜索并显示新地图时仍在更新用户位置。所以我只是在意图启动时关闭了 GPS 活动。

这实际上加快了应用程序的速度,现在搜索工作了!

感谢所有看到这个并试图提供帮助的人。希望这对其他人有一些帮助:)

于 2011-06-21T18:25:15.390 回答