В моем приложении Android у меня есть просмотрщик, который содержит список предметов. В задании повторного просмотра у каждого элемента есть одно текстовое представление, а у другого - два вида текста и одна кнопка воспроизведения звука. Но аудио не играет. Как я могу установить setOnClickListener и воспроизводить аудио mp3, используя MediaPlayer. Вот мой код:
NameModel. java
public class NameModel {
private String name,meaning;
private int audio;
public NameModel(String name, String meaning, int audio) {
this.name= name;
this.meaning= meaning;
this.audio= audio;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
public String getMeaning() {
return meaning;
}
public void setMeaning(String meaning) {
this.meaning= meaning;
}
public int getAudio() {
return audio;
}
public void setAudio(int audio) {
this.audio = audio;
}
}
NameAdapter. java
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position=getAdapterPosition();
NameModel nameModel=nameItemList.get(position);
Intent intent=new Intent(context, NameDetailsActivity.class);
intent.putExtra("NAME",nameModel.getName());
intent.putExtra("MEANING",nameModel.getMeaning());
intent.putExtra("AUDIO", nameModel.getAudio());
context.startActivity(intent);
}
});
MainActivity. java
public class MainActivity extends AppCompatActivity {
private LinearLayoutManager linearLayoutManager;
private List<NameModel> nameModelList;
private NameAdapter nameAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerViewId);
nameModelList = new ArrayList<>();
nameAdapter = new NameAdapter(this,nameModelList);
linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setAdapter(nameAdapter);
recyclerView.setLayoutManager(linearLayoutManager);
RecyclerView.ItemDecoration itemDecoration=new DividerItemDecoration(getApplicationContext(),DividerItemDecoration.VERTICAL);
recyclerView.addItemDecoration(itemDecoration);
nameModelList.add(new NameModel("Mahmud", "The praised one", R.raw.mahmud));
nameModelList.add(new NameModel("Maaz", "Brave Man", R.raw.maaz));
}
}
NameDetailsActivity. java
public class NameDetailsActivity extends AppCompatActivity {
Context context;
NameModel nameModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details_name);
String name = getIntent().getStringExtra("NAME");
String meaning = getIntent().getStringExtra("MEANING");
int audio = getIntent().getIntExtra("AUDIO",0);
TextView nameText = (TextView) findViewById(R.id.tvName);
TextView meaningText = (TextView) findViewById(R.id.tvMeaning);
Button playbutton = (Button) findViewById(R.id.playBtn);
nameText.setText(name);
meaningText.setText(meaning);
playbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MediaPlayer mediaPlayer = MediaPlayer.create(context,audio);
mediaPlayer.start();
}
});
}
}
любая помощь будет оценена. Спасибо!