Я пытаюсь создать gridView с ImageButtons внутри них, поэтому при нажатии - звук испускается. Пока у меня есть GridView_layout.xml, макет для моего button.xml. Мой gridAdapter для заполнения сетки с помощью кнопок. С моим текущим кодом сетка заполняется кнопками, но при нажатии звук не испускается.Imagebutton со звуком внутри Gridview
Вот часть моей кнопки деятельности, которая расширяет активность, следующий блок кода внутри метода OnCreate():
final Context context = getApplicationContext();
final int duration = Toast.LENGTH_SHORT;
final ImageButton one = (ImageButton) findViewById(R.id.imageButton);
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
one.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.pears);
if (mp.isPlaying()) {
mp.stop();
mp.reset();
}
if (mp == null) {
Toast toast = Toast.makeText(context, "button error", duration);
toast.show();
} else {
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaplayer) {
mp.stop();
mp.release();
}
});
mp.start();
}
}
});
}
});
метод GetView() из gridAdapter по запросу:
public View getView(int position, View convertView, ViewGroup parent) {
ImageButton imageButton;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageButton = new ImageButton(mContext);
imageButton.setLayoutParams(new GridView.LayoutParams(190, 190));
imageButton.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageButton.setBackgroundColor(white);
} else {
imageButton = (ImageButton) convertView;
}
imageButton.setImageResource(mThumbIds[position]);
return imageButton;
}
вы могли бы разместить свой метод GetView адаптер здесь. –