2017-01-31 5 views
0

パブリックデータ(JSON)を使用してデータを取得し、リストビューで表示する単純なアプリケーションに取り組んでいます。それは大丈夫です。今度は、アクションバーに「検索ビュー」を実装したいと思います。だから私はYouTubeチュートリアル(https://www.youtube.com/watch?v=hoEY2n8CCSk)に従って、彼がしたことを正確に行いました。 searchviewは意図したとおりに表示されますが、検索機能は全く機能しません。私はYouTubeのチュートリアルはちょうど文字列をフィルタリングだと思うが、私は各オブジェクトの名前変数によってリストビューでオブジェクトをフィルタリングする必要があります。使用getName()メソッド。私は何をすべきか??searchview oncreateoptionsメソッドがJSON(Android)のオブジェクトと連携していません

MainActivity.java

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu_search, menu); 
    MenuItem item = menu.findItem(R.id.menuSearch); 
    SearchView searchView = (SearchView) item.getActionView(); 

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      mAdapter.getFilter().filter(newText); 
      return false; 
     } 
    }); 

    return super.onCreateOptionsMenu(menu); 
} 

AndroidMenifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/myAppTheme"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    </application> 

</manifest> 

menu_search.xml

<item android:id="@+id/menuSearch" 
    android:title="Search" 
    android:icon="@android:drawable/ic_menu_search" 
    app:actionViewClass="android.widget.SearchView" 
    app:showAsAction="always"> 

</item> 

答えて

0

この方法を試してみてください。..

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == R.id.menuSearch) { 
     SearchView searchView = (SearchView) item.getActionView(); 

     searchView 
       .setOnQueryTextListener(new SearchView.OnQueryTextListener() { 

        @Override 
        public boolean onQueryTextSubmit(String query) { 
         return false; 
        } 

        @Override 
        public boolean onQueryTextChange(String newText) { 
         mAdapter.getFilter().filter(newText); 
         return false; 
        } 
       }); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

まだ何もしない.. :(ところで、私はこれのためにonOptionItemSelectedを使うべきですか? – JessJ

+0

はい..私のコードを試しましたか?それは私の場合に働くからです。私はドームを作った。 –

+0

はい、試してみました。検索バーに入力すると何も起こりません。 – JessJ

関連する問題