问题描述
这是用于存储列表视图数据的类
在这个类中存储了媒体资源,当被活动的适配器视图调用时可以使用。
public class word{
...
public word(...,int imgResourceId,int mediaResourceId){
...
mMediaResourceId = mediaResourceId;
}
public int getMediaResourceId(){
return mMediaResourceId;
}
这是listView的adapterView的代码
MediaPlayer 无法在adapterView 上创建,但我无法在oncreate 方法中访问媒体的资源ID...那么媒体播放器如何播放媒体onitemclick 或如何传递资源ID到mainactivity oncreate 方法
public class WordAdapter extends ArrayAdapter<word> {
private int mColorResourceId;
public WordAdapter(Activity context,ArrayList<word> words,int colorResourceId){
super(context,words);
mColorResourceId = colorResourceId;
}
@Override
public View getView(int position,View convertView,@NonNull ViewGroup parent) {
View listItemVIew = convertView;
if(listItemVIew == null){
listItemVIew = LayoutInflater.from(getContext()).inflate(R.layout.list_item,parent,false);
}
word currentListItemView = getItem(position);
...
View textContainer = listItemVIew.findViewById(R.id.text_container);
int color = ContextCompat.getColor(getContext(),mColorResourceId);
textContainer.setBackgroundColor(color);
return listItemVIew;
}
这是活动代码
这包含如何用数据膨胀词类并与适配器视图绑定..但是要传递给 MediaPlayer.create() 以便媒体播放器播放所需文件的内容,该文件是在用数据膨胀词类实例期间输入的.
public class NumberActivity extends AppCompatActivity {
MediaPlayer mMedia;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.word_list);
ArrayList<word> words= new ArrayList<>();
words.add(new word("One","lutti",R.drawable.number_one,R.raw.number_one));
...
WordAdapter itemsAdapter =
new WordAdapter(this,words,R.color.category_numbers);
ListView listView = findViewById(R.id.list);
listView.setAdapter(itemsAdapter);
listView.setonItemClickListener((parent,view,position,id) -> {
mMedia = MediaPlayer.create(NumberActivity.this,R.raw.);
mMedia.start();
});
}
如何将输入提供给 mMedia,使其播放在 arraylist 单词中输入的媒体文件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)