2011-11-10 14 views
0

私はかなり複雑なレイアウトのマップアクティビティを持っています。したがって、私は、そのアクティビティで地図の検索機能を使用して、悪いウィンドウを作らずに簡単に検索することはできません(アプリケーションをクラッシュさせると、別のコンテキストを使用するにはonSearchRequestedが必要ですが、パラメータは受け付けません)。Android onSearchRequested()ヘルプ、検索クエリを地図アクティビティに戻す

私はすぐに事は私が何かを入力し、検索をクリックすると、何も起こらないということであるonSearchRequested()

onCreate()時に呼び出すマップアクティビティの上の透明のポップアップ活動を行っているやっていること。検索バーはただ消えるだけですが、何かをもう一度検索するように画面に表示されます。私はこの検索クエリに何が起こるかわかりませんが、MapActivityに渡す必要があります。

私は startActivityforResultを行うと、検索のポップアップ活動から戻って結果を渡して検討していた

が、私はまだ結果を格納する方法を知り、検索は検索

このクラスのロードをクリックした後、離れて行く作っていないのジレンマを持っています検索ボックス、thats all。また、検索ボックスとキーボードの間には透明なイメージビューがあります。ユーザーがクリックした場合、活動が終了した()

public class PseudoMapSearchActivity extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pseudomapsearch); 

    onSearchRequested(); 

    findViewById(R.id.blankness).setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      finish(); 
     } 

    }); 

    final SearchManager searchManager = 
      (SearchManager) getSystemService(this.SEARCH_SERVICE); 

    searchManager.setOnCancelListener(new SearchManager.OnCancelListener() { 
      public void onCancel() { 
       searchManager.setOnCancelListener(null); 
       searchManager.stopSearch(); 
       finish(); 
      } 
     }); 

    searchManager.setOnDismissListener(new SearchManager.OnDismissListener() { 
      public void onDismiss() { 
       searchManager.setOnCancelListener(null); 
       searchManager.stopSearch(); 
       finish(); 
      } 
     }); 

    //searchManager.getSearchableInfo(getCallingActivity()); 

    //searchManager.triggerSearch(query, launchActivity, appSearchData) 

}

searchManager機能は、私が

<activity android:name=".PseudoMapSearchActivity" android:theme="@style/Theme.Transparent" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden"> 
     <meta-data android:name="android.app.default_searchable" 
      android:value=".PseudoMapSearchActivity" /> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 
     <meta-data android:name="android.app.searchable" 
      android:resource="@xml/searchable" /> 
    </activity> 

それのうち、ユーザが入力したと選択を取得するには、検索クエリので、呼び出す必要がありますどのような

Pseudomapsearchポップアップアクティビティは実際の検索を行っていません。マップを使った私の活動は、この位置データの実際の処理をすべて実行しています。

答えて

2

startActivityForResultの結果をAndroid SharedPreferencesオブジェクトに保存することができます。 SharedPreferencesはすばらしく、アプリケーション内のどこからでも、あるいは世界中からでも入手できます。 SharedPreferencesがない場合は、SharedPreferencesの定数を格納するクラスを用意することをお勧めします。 SharedPreferencesのドキュメントは素晴らしいです。ここにリンクは次のとおりです。

http://developer.android.com/reference/android/content/SharedPreferences.html

は、この情報がお役に立てば幸い!

結果からデータを取得するには、onActivityResultというメソッドを使用する必要があります。次に、適切な要求コードを使用します。 言及したメソッドのドキュメントは、ここで見つけることができます:

http://developer.android.com/reference/android/app/Activity.html

+0

私はSharedPreferencesに精通よ、私は全くのデータ変数に、検索クエリ結果を取得する方法がわかりません – CQM

+0

あなたが探している商品を追加しました! –

+0

私はメインのアクティビティにデータを戻すことができましたが、この文字列クエリでマップビューを更新するにはどうすればよいですか? http://stackoverflow.com/questions/8100261/android-convert-uri-geo0-0q-address-to-geopoint – CQM

関連する問題