2013-08-21 6 views
1

Я пытаюсь воспроизвести звук OnItemClick от ListView У меня есть настройка.Ошибка при воспроизведении звука OnItemClick

Я получаю ошибку «Метод create(Context, int) в типе MediaPlayer не применяется для аргументов (new AdapterView.OnItemClickListener(){}, int)» с «создать» подчеркнуты.

Не 100% уверен, почему я получаю эту ошибку, если кто-то может помочь, была бы оценена.

ListView BoardList = (ListView) findViewById(R.id.BoardList); 
BoardList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

String List[] = {"Play 1", "Play 2", "Play 3", "Play 4", "Play 5", "Play 6", "Play 7", "Play 8", "Play 9" }; 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listcustomize, R.id.textItem, List); 

BoardList.setAdapter(adapter); 
BoardList.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     if (position == 0) { 
      MediaPlayer mPlayer = MediaPlayer.create(this, R.raw.Audio1); 
      mPlayer .start(); 
      } 
     } 
    }); 

ответ

5

Вместо того this внутри объекта MediaPlayer вы должны написать YourActivityName.this и попробуйте еще раз!

MediaPlayer mPlayer = MediaPlayer.create(YourActivityName.this, R.raw.Audio1); 

Эта ошибка возникает из-за того, что вы находитесь внутри слушателя, а слово this относится к самому слушателю, а не к вашей деятельности.

+0

Если это вам помогло, вы можете принять его! Спасибо – Pavlos

+0

Спасибо, сэр, вы научили кого-то сегодня, что никогда не забудется, спасибо. – Jack

+0

Возможно, вы можете немного расширить свой ответ, чтобы включить объяснение о сфере видимости. Я уверен, что будущие читатели, борющиеся с проблемой, посчитают это полезным! – Eric

Смежные вопросы