2017-07-25 15 views
3

ムービーのリストを表示しているとします。Androidで検索フィルタを実装する

あなたが(別々の活動として) (Filterウィンドウが映画のリストの一番上にオーバーレイすることができた(私はアンドロイドでこれを行うことができるかわからない)

をフィルタを提供している今、ユーザーがフィルタを選択フィルタ画面、およびフィルタを適用したいと考えています。

フィルタデータは、(映画のリストを示している)前のアクティビティにフィルタ活動から転送されなければならない。

どのように私は、このシナリオでデータを渡すことができますか?

何らかのイベントシステム(iosのNotificationCenterなど)を使用する必要がありますか? アクティビティが既に開始され待機していても、何らかの形のstartActivityを使用する必要があります。

+1

アンドロイドでは少しシンプルです。フィルタに別のアクティビティを使用する場合は、startActivityForResultを使用してアクティビティを開始します。フィルタ値の選択が完了したら、そのアクティビティを終了すると、リストを持つ以前のアクティビティでonResultメソッドが呼び出されます。リストをフィルタリングすることができます。参照 - https://stackoverflow.com/questions/10407159/how-to-manage-startactivityforresult-on-android –

答えて

1
  1. Activityに戻って結果を取得するために、特定のActivityを開きたい場合は、私によるとベストプラクティスは、startActivityForResult(intent,requestCode)代わりのstartActivity(intent)を使用しています。方法以下の

  2. オーバーライドは、コードが第二のアクティビティに

     Intent resultIntent = new Intent(); 
         resultIntent.putExtra("data", yourData); //make 'yourData' Serializable if a POJO 
         setResult(Activity.RESULT_OK, resultIntent); 
         finish(); 
    
  3. をトリガーする必要があり、以下、あなたが第一の活動に戻って結果を取得するために、データ onActivityResult(int requestCode, int resultCode, Intent data)

  4. を受け取りたいあなたの第一の活動であります

    このコードがトリガーされた後、あなたが入れたstartActivityForResult()extarsと呼んだ最初のアクティビティーでは、onActivityResult()というコールバックが返されます。お役に立てれば。 GL

0

Runnableインタフェースを実装し、UIを追加するには、あなたがrunメソッドの内部で実行したい変更されます。その後、インスタンス化して、runOnUiThreadでメインのUIThreadに送信します。あなたの変更はメインアクティビティ(ムービーのリストがある場所)で行われます。

how to use runOnUiThreadの例。