2011-04-13 71 views
1

我有一個包含列表的活動。通過Android onSearchRequested()我實現了一個搜索。 結果顯示爲在另一活動中使用相同適配器的列表。到目前爲止工作正常。從可搜索活動進行Android搜索

此外,我希望能夠從第二個活動搜索顯示在同一個列表中的新結果。

我AndroidManifest.xml中的兩個活動:

<activity android:name=".ListActivity" android:label="List"> 
    <meta-data android:name="android.app.default_searchable" android:value=".SearchActivity" /> 
</activity> 

<activity android:name=".SearchActivity" android:label="Results"> 
    <intent-filter> 
     <action android:name="android.intent.action.SEARCH" /> 
    </intent-filter> 
    <meta-data android:name="android.app.searchable" android:resource="@xml/search" android:value=".SearchActivity" /> 
</activity> 

SearchActivity的的onResume():

@Override 
protected void onResume() { 
    super.onResume(); 
    Intent queryIntent = getIntent(); 
    String value = queryIntent.getStringExtra(SearchManager.QUERY); 
    setView(value); 
} 

的的setView()方法,通過所有對象foreach循環將它們添加到用於列表顯示的新適配器的結果數組。

ca = new CustomAdapter(this, R.layout.customadapter, resultArray); 
list.setAdapter(pa); 
list.invalidate(); 

當試圖從搜索條出現,我可以進入我的搜索值的第二活動搜索,發送 - 但名單沒有變化(甚至是鍵盤保持)。 缺少什麼?

編輯:試圖讓它更容易理解。

回答

3

找到that question其中描述了類似的問題。

而是壓倒一切的onResume()我要重寫onNewIntent的()

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent);  
    String value = intent.getStringExtra(SearchManager.QUERY); 
    setView(value); 
} 
+0

此外,我通過修改清單屬性爲活動的Android解決停留鍵盤的問題:windowSoftInputMode =「stateAlwaysHidden」 – strem 2011-04-15 08:27:02