Реализация searchView в панели действий MainActivity.java для поиска контента в других действиях - PullRequest
0 голосов
/ 21 ноября 2018

Я новичок в Android Studio.У меня есть приложение, которое ставит под угрозу основное действие, если меню и внутри каждого пункта меню является listView объектов. Каждый объект содержит 2 textView, изображение и аудиофайл.При щелчке элемента в списке воспроизводится определенный аудиофайл. Я хотел бы вставить представление поиска автозаполнения в панель действий mainActivity, чтобы пользователь мог найти элемент в любом действии в списке и когда он его найдети нажимает его, аудио файл воспроизводится.Вот фрагмент моего файла mainActivity.java

private AdView mAdView;
GridView gridview;

public static String[] osNameList = {
        "NUMBERS",
        "FAMILY",
        "COLORS",
        "NOUNS",
        "VERBS",
        "PHRASES",
        "ANIMALS",
        "DATES"
};
public static int[] osImages = {
        R.drawable.numbers,
        R.drawable.family,
        R.drawable.colors,
        R.drawable.nouns,
        R.drawable.verbs,
        R.drawable.phrases,
        R.drawable.pawprint,
        R.drawable.dates
};



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    gridview = (GridView) findViewById(R.id.grid);
    gridview.setAdapter(new adapter(Main2Activity.this, osNameList, osImages));

Вот фрагмент моего адаптера сетки

rowView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (position == 0){
                context.startActivity(new Intent(context, NumbersActivity.class));
            }
            else if (position == 1){
                context.startActivity(new Intent(context, FamilyActivity.class));
            }
            else if (position == 2){
                context.startActivity(new Intent(context, ColorsActivity.class));
            }
            else if (position == 3){
                context.startActivity(new Intent(context, NounsActivityFrags.class));
            }
            else if (position == 4){
                context.startActivity(new Intent(context, VerbsActivity.class));
            }
            else if (position == 5){
                context.startActivity(new Intent(context, PhrasesActivityFrags.class));
            }
            else if (position == 6){
                context.startActivity(new Intent(context, Animals.class));
            }
            else if (position == 7){
                context.startActivity(new Intent(context, CalendarActivityFrags.class));
            }
        }
    });

Вот фрагмент одного из моих действий, содержащий объекты вlistView

final ArrayList<Word> word = new ArrayList<Word>();

    word.add(new Word("one","kunye",R.drawable.one,R.raw.one));
    word.add(new Word("two","kubili",R.drawable.two,R.raw.two));
    word.add(new Word("three","kuthathu",R.drawable.three,R.raw.three));
    word.add(new Word("four","kune",R.drawable.four,R.raw.four));
    word.add(new Word("five","kuhlanu",R.drawable.five,R.raw.five));
    word.add(new Word("six","sithandathu",R.drawable.six,R.raw.six));
    word.add(new Word("seven","likhomba",R.drawable.seven,R.raw.seven));
    word.add(new Word("eight","bunane",R.drawable.eight,R.raw.eight));
    word.add(new Word("nine","lithoba",R.drawable.nine,R.raw.nine));
    word.add(new Word("ten","itjhumi",R.drawable.ten,R.raw.ten));
    word.add(new Word("COUNT ONE TO TEN","",R.raw.onetoten));



    WordAdapter adapter = new WordAdapter(this, word, R.color.category_numbers);
    ListView listView = (ListView) findViewById(R.id.list);
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Word sound = word.get(position);

            //Release the media player if it currently exists because we are about to play a different audio file
            releaseMediaPlayer();

            // Request audio focus for playback
            int result = mAudioManager.requestAudioFocus(afChangeListener,
                    // Use the music stream.
                    AudioManager.STREAM_MUSIC,
                    // Request permanent focus.
                    AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);

            if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
                // we have audio focus now



            mMediaPlayer = MediaPlayer.create(NumbersActivity.this, sound.getmAudioResourceId());
            mMediaPlayer.start();
                Toast.makeText(NumbersActivity.this, "Now Playing...", Toast.LENGTH_SHORT).show();

            mMediaPlayer.setOnCompletionListener(mOnCompletionListener);
            }
        }
    });

}

Я хочу, чтобы пользователь мог выполнять поиск по английскому слову, но при этом мог найти весь объект

...