Je suis tellement confus comment faire le searchview dans la barre android. C'est les 2 jours maintenant coincés dans ce scénario. Si quelqu'un peut me aider avec mes codes ci-dessous:SearchView dans Android Bar
public class MainActivity extends AppCompatActivity
implements LoaderManager.LoaderCallbacks<Cursor> {
private static final int EDITOR_REQUEST_CODE = 1001;
private CursorAdapter cursorAdapter;
MediaPlayer mySound;
private AdView mAdView;
//If media player stop
@Override
protected void onPause() {
super.onPause();
mySound.release();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySound = MediaPlayer.create(this, R.raw.door);
//Adsence Ads to load
MobileAds.initialize(this, "ca-app-pub-8674376475299935~1764444800");
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
cursorAdapter = new NotesCursorAdapter(this, null, 0);
ListView list = (ListView) findViewById(android.R.id.list);
list.setAdapter(cursorAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, EditorActivity.class);
Uri uri = Uri.parse(NotesProvider.CONTENT_URI + "/" + id);
intent.putExtra(NotesProvider.CONTENT_ITEM_TYPE, uri);
startActivityForResult(intent, EDITOR_REQUEST_CODE);
}
});
getLoaderManager().initLoader(0, null, this);
}
//Search bar call
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.search_view_menu_item, menu);
MenuItem searchViewItem = menu.findItem(R.id.action_search);
SearchView searchViewAndroidActionBar = (SearchView) searchViewItem.getActionView();
searchViewAndroidActionBar.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//searchViewAndroidActionBar.clearFocus();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
cursorAdapter.getFilter().filter(newText);
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
Et voici ma classe NotesCursorAdapter
public class NotesCursorAdapter extends CursorAdapter {
public NotesCursorAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.note_list_item, parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
String noteText = cursor.getString(cursor.getColumnIndex(DBOpenHelper.NOTE_TEXT));
int pos = noteText.indexOf(10);
if (pos != - 1){
noteText = noteText.substring(0, pos) + "...";
}
TextView tv = (TextView) view.findViewById(R.id.tvNote);
tv.setText(noteText);
}
}
Ce qui précède est le code que je comptais faire fonctionnalité SearchView mais je ne peux pas le faire fonctionner.
Est-ce votre code implémenté ou vous essayez de mettre en œuvre à partir d'un tutoriel? –
J'ai dérivé les codes ci-dessus basé sur le tutoriel et mettre en œuvre mon apprentissage dans le cadre de mon exercice pour déterminer jusqu'où je peux aller avec android. Je demande une solution pour faire avancer mon apprentissage. –