使用自定义的RecyclerView应用程序,该应用程序由一个textView和三个radioButton组成。 当您按下任何单选按钮时,将播放音频文件。
注意:
当我使用MeidaPlayer
里面的RecyclerView
该应用程序无法正常工作
代码类MainActivity
public class MainActivity extends AppCompatActivity {
private String[] question = {
"The capital of France",
"The capital of India",
"The capital of Iraq"
};
private String[] answer1 = {"Paris", "New Delhi", "Baghdad" };
private String[] answer3 = {"Canberra", "Manama", "Brasilia" };
private String[] answer2 = {"Havana", "Doha", "Moscow" };
///////////////////////////////
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
super.onCreate(savedInstanceState);
addQuestion();
}
//////////////////////////////
public void addQuestion() {
List<Question> questionsList = new ArrayList<>();
RecyclerView recyclerView = findViewById(R.id.recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
for (int i = 0; i < question.length; i++) {
String item0 = question[i];
String item1 = answer1[i];
String item2 = answer2[i];
String item3 = answer3[i];
Question questionClass = new Question(item0, item1, item2, item3);
questionsList.add(questionClass);
}
QuesAdapter adapter = new QuesAdapter(questionsList);
recyclerView.setAdapter(adapter);
}
}
此类旨在添加菜单项
public class Question {
final String question, answer_1, answer_2, answer_3;
public Question(String question, String answer_1, String answer_2, String answer_3) {
this.question = question;
this.answer_1 = answer_1;
this.answer_2 = answer_2;
this.answer_3 = answer_3;
}
}
此类用于RecyclerView自定义列表 这是问题 如果按下按钮 我想播放声音文件
public class QuesAdapter extends RecyclerView.Adapter<QuesAdapter.QuesHolder>
{
private List<Question> questionList;
public QuesAdapter(List<Question> questionList) {
this.questionList = questionList;
}
@Override
public QuesHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View row = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.question, viewGroup, false);
QuesHolder holder = new QuesHolder(row);
return holder;
}
@Override
public void onBindViewHolder(QuesHolder viewHolder, int i) {
Question question = questionList.get(i);
TextView ques = viewHolder.question;
final RadioButton answer1 = viewHolder.answer1;
RadioButton answer2 = viewHolder.answer2;
RadioButton answer3 = viewHolder.answer3;
ques.setText(question.question);
answer1.setText(question.answer_1);
answer2.setText(question.answer_2);
answer3.setText(question.answer_3);
/////////////////////////////
// Start: this is the problem
// Press the button An audio file is playing
answer1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("TAG", answer1.getText() + "");
}
});
// End: this is the problem
///////////////////////////
}
@Override
public int getItemCount() {
return questionList.size();
}
class QuesHolder extends RecyclerView.ViewHolder {
private TextView question;
private RadioButton answer1, answer2, answer3;
public QuesHolder(View itemView) {
super(itemView);
question = itemView.findViewById(R.id.question);
answer1 = itemView.findViewById(R.id.answer_1);
answer2 = itemView.findViewById(R.id.answer_2);
answer3 = itemView.findViewById(R.id.answer_3);
}
}
}
答案 0 :(得分:0)
将声音文件放入res目录中的raw文件夹中,您可能必须在res中创建raw文件夹,因为在创建项目时不存在该
final MediaPlayer mp = MediaPlayer.create(this, R.raw.sound);
answer1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.start();
Log.i("TAG", answer1.getText() + "");
}
});