2016-07-19 2 views
0

달 전에 내 HDD에 불량 섹터가 있으며 모든 것을 잃었습니다. 임 이상의 시작을 시도하지만 SearchView 나를 막을. 여기 내 하드 디스크가 여기 enter image description hereandroid.support.v7.widget.SearchView는 나를 위해 일하지 않습니다

enter image description here

일주일에 내가 어떤 문제 is.code에 대해 알아낼 수 없습니다 내 새로운 프로젝트 깨진 전에 OUPUT입니다 :

menu.xml는

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> 
<item android:id="@+id/action_settings" android:title="@string/action_settings" 
    android:orderInCategory="100" app:showAsAction="never" /> 
<item android:id="@+id/action_search" android:title="@string/action_search" android:icon="@drawable/ic_search_dark" 
    app:showAsAction="collapseActionView|ifRoom" app:actionViewClass="android.support.v7.widget.SearchView"/></menu> 

MainActivity.java

public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_settings: 
      startActivity(new Intent(this,SettingsActivity.class)); 
      return true; 
     case R.id.action_search: 
      return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

내 추상 조각

public abstract class MainFragments extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    setHasOptionsMenu(true); 
    return super.onCreateView(inflater, container, savedInstanceState); 
}} 

내 자신의 커서

private Cursor getAllArtists(String search) { 
    ContentResolver contentResolver = ourContext.getContentResolver(); 
    String[] projection = {MediaStore.Audio.Artists._ID, 
      MediaStore.Audio.Artists.ARTIST, 
      MediaStore.Audio.Artists.NUMBER_OF_TRACKS, 
      MediaStore.Audio.Artists.NUMBER_OF_ALBUMS}; 
    if (search != null && search.length() > 0) { 
     search = "LOWER(" 
       + MediaStore.Audio.Albums.ARTIST + ") LIKE LOWER('" + search + "%') "; 
    } 

    return contentResolver.query(MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI, 
      projection, 
      search, 
      null, 
      MediaStore.Audio.Artists.ARTIST + " ASC"); 

} 

public ArrayList<MetaInfo> getArtists(String search) { 
    ArrayList<MetaInfo> infos = new ArrayList<>(); 
    Cursor c = getAllArtists(search); 
    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 
     MetaInfo info = new MetaInfo(); 
     info.setId(c.getString(c.getColumnIndex(MediaStore.Audio.Artists._ID))); 
     info.setName(c.getString(c.getColumnIndex(MediaStore.Audio.Artists.ARTIST))); 
     info.setNumber_of_songs(c.getString(c.getColumnIndex(MediaStore.Audio.Artists.NUMBER_OF_TRACKS))); 
     info.setNumber_of_album(c.getString(c.getColumnIndex(MediaStore.Audio.Artists.NUMBER_OF_ALBUMS))); 
     infos.add(info); 
    } 
    c.close(); 
    return infos; 
} 

파편 어댑터

public boolean onQueryTextSubmit(String query) { 
searchName(query); 
return false; 
} 
public boolean onQueryTextChange(String newText) { 
searchName(newText); 
return false; 
} 
private void searchName(String s) { 
infos = database.getArtists(s); 
adapter.addAll(infos); 
} 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
super.onCreateOptionsMenu(menu,inflater); 
searchView = (SearchView)menu.findItem(R.id.action_search).getActionView(); 
searchView.setOnQueryTextListener(this); 
} 
public class ArtistListAdapter extends BaseAdapter { 

    public void addAll(ArrayList<MetaInfo> metaInfos) { 
    infos.clear(); 
    this.infos = metaInfos; 
    notifyDataSetChanged(); 
    } 
} 
+0

해결. 늦게 응답을 제공 setHasOptionsMenu (true); 에 내 매니페스트 <의도 필터> 여기 – user2784556

답변

0

당신이 의도 활동 매니페스트를 변경할 수 있는지 확인하십시오.

 <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      <action android:name="android.intent.action.SEARCH" /> 
      <action android:name="android.intent.action.VIEW" /> 
     </intent-filter> 
+0

을 onActivityCreated <액션 안드로이드 : 이름 = "android.intent.action.VIEW"/> <카테고리 안드로이드 : 이름 = "android.intent.category.DEFAULT"/> user2784556

관련 문제