i want to run sound when click item but error show when click item image and text sho corict but click item to play sound give error can shoe error in photo and cobe nomber 48
i want to run sound when click item but error show when click item image and text sho corict but click item to play sound give error can shoe error in photo and cobe nomber 48
BabListAdapter
package com.example.learnn.ui;
import android.content.Context;
import android.media.MediaPlayer;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.learnn.EnglishlettersActivity;
import com.example.learnn.R;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class BabyListAdapter extends RecyclerView.Adapter<BabyListAdapter.BabyViewHolder> {
private MediaPlayer mMediaPlayer;
Context context;
private ArrayList<BabyModel> letterList = new ArrayList<>();
public BabyListAdapter() {
this.context = context;
}
@NonNull
@Override
public BabyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new BabyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.litter_list_item, parent, false));
}
@Override
public void onBindViewHolder(@NonNull BabyViewHolder holder, final int position) {
holder.image.setImageResource(letterList.get(position).getLetterRecourceID());
holder.text.setText (letterList.get(position).getDefaultText());
holder.part.setOnClickListener ( new View.OnClickListener () {
@Override
public void onClick(View v) {
mMediaPlayer = MediaPlayer.create ( context,letterList.get ( position ).getAudioResourceId () );
mMediaPlayer.start();
}
} );
}
@Override
public int getItemCount() {
return letterList.size();
}
public void setList(ArrayList<BabyModel> letterList) {
this.letterList = letterList;
notifyDataSetChanged();
}
public class BabyViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView text;
LinearLayout part;
public BabyViewHolder(@NonNull View itemView) {
super(itemView);
image = itemView.findViewById(R.id.imagee);
text = itemView.findViewById(R.id.text);
part = itemView.findViewById(R.id.part);
}
}
}
EnglishLetterActivity
package com.example.learnn;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.learnn.databinding.ActivityEnglishcolorsBinding;
import com.example.learnn.databinding.ActivityEnglishlettersBinding;
import com.example.learnn.ui.BabyListAdapter;
import com.example.learnn.ui.BabyModel;
import com.example.learnn.ui.BabyViewModel;
import java.util.ArrayList;
public class EnglishlettersActivity extends AppCompatActivity {
BabyViewModel babyViewModel;
ImageView imagee,next;
RecyclerView recycler;
private int index = 0;
private MediaPlayer mMediaPlayer;
ArrayList arrayList,letterList;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityEnglishlettersBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_englishletters);
imagee = (ImageView)findViewById(R.id.imagee);
recycler = (RecyclerView)findViewById(R.id.recycler);
final BabyListAdapter adapter = new BabyListAdapter();
recycler.setAdapter(adapter);
GridLayoutManager layoutManager = new GridLayoutManager ( this, 3 );
recycler.setLayoutManager(layoutManager);
babyViewModel = ViewModelProviders.of(this).get(BabyViewModel.class);
babyViewModel.letterRecourceIDMutableLiveData.observe(this, new Observer<ArrayList<BabyModel>>() {
@Override
public void onChanged(ArrayList<BabyModel> babyModels) {
adapter.setList(babyModels);
}
});
babyViewModel.getLetterRecourceID();
}
}
BabyViewModel
package com.example.learnn.ui;
import com.example.learnn.R;
import java.util.ArrayList;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class BabyViewModel extends ViewModel {
ArrayList arrayList;
public MutableLiveData<ArrayList<BabyModel>> letterRecourceIDMutableLiveData = new MutableLiveData<>();
public MutableLiveData<ArrayList<BabyModel>> defaultTextMutableLiveData = new MutableLiveData<>();
public MutableLiveData<ArrayList<BabyModel>> audioResourceIdMutableLiveData = new MutableLiveData<>();
public void getLetterRecourceID(){
letterRecourceIDMutableLiveData.setValue(getDataFromDatabase());
}
public void getDefaultText(){
defaultTextMutableLiveData.setValue(getDataFromDatabase());
}
public void getAudioResourceId(){
audioResourceIdMutableLiveData.setValue(getDataFromDatabase());
}
private ArrayList<BabyModel> getDataFromDatabase(){
ArrayList<BabyModel> arrayList = new ArrayList<>();
arrayList.add(new BabyModel(R.drawable.a, "A",R.raw.a));
arrayList.add(new BabyModel(R.drawable.b,"B",R.raw.b));
arrayList.add(new BabyModel(R.drawable.c,"D",R.raw.c));
arrayList.add(new BabyModel(R.drawable.d,"D",R.raw.d));
arrayList.add(new BabyModel(R.drawable.e,"E",R.raw.e));
arrayList.add(new BabyModel(R.drawable.f,"F",R.raw.f));
arrayList.add(new BabyModel(R.drawable.g,"G",R.raw.g));
arrayList.add(new BabyModel(R.drawable.h,"H",R.raw.h));
arrayList.add(new BabyModel(R.drawable.i,"I",R.raw.i));
arrayList.add(new BabyModel(R.drawable.j,"J",R.raw.j));
arrayList.add(new BabyModel(R.drawable.k,"K",R.raw.k));
arrayList.add(new BabyModel(R.drawable.l,"L",R.raw.l));
arrayList.add(new BabyModel(R.drawable.m,"M",R.raw.m));
arrayList.add(new BabyModel(R.drawable.o,"O",R.raw.o));
arrayList.add(new BabyModel(R.drawable.p,"P",R.raw.p));
arrayList.add(new BabyModel(R.drawable.q,"G",R.raw.g));
arrayList.add(new BabyModel(R.drawable.r,"R",R.raw.r));
arrayList.add(new BabyModel(R.drawable.s,"S",R.raw.s));
arrayList.add(new BabyModel(R.drawable.t,"T",R.raw.t));
arrayList.add(new BabyModel(R.drawable.u,"U",R.raw.u));
arrayList.add(new BabyModel(R.drawable.v,"U",R.raw.u));
arrayList.add(new BabyModel(R.drawable.e,"E",R.raw.e));
arrayList.add(new BabyModel(R.drawable.w,"W",R.raw.w));
arrayList.add(new BabyModel(R.drawable.x,"X",R.raw.x));
arrayList.add(new BabyModel(R.drawable.y,"Y",R.raw.y));
arrayList.add(new BabyModel(R.drawable.z,"Z",R.raw.z));
return arrayList;
}
}
listlitteritem
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<data>
</data>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/part"
android:orientation="vertical"
android:background="@drawable/letter_style"
android:layout_margin="5dp"
android:layout_width="120dp"
android:layout_height="150dp">
<ImageView
android:gravity="center"
android:id="@+id/imagee"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
tools:context=".EnglishlettersActivity" />
<TextView
android:gravity="center_horizontal"
android:id="@+id/text"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#141414"
android:text="ddfdfdfdf"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="10dp"
/>
</LinearLayout>
</FrameLayout>
</layout>
BabListAdapter
package com.example.learnn.ui;
import android.content.Context;
import android.media.MediaPlayer;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.example.learnn.EnglishlettersActivity;
import com.example.learnn.R;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class BabyListAdapter extends RecyclerView.Adapter<BabyListAdapter.BabyViewHolder> {
private MediaPlayer mMediaPlayer;
Context context;
private ArrayList<BabyModel> letterList = new ArrayList<>();
public BabyListAdapter() {
this.context = context;
}
@NonNull
@Override
public BabyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new BabyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.litter_list_item, parent, false));
}
@Override
public void onBindViewHolder(@NonNull BabyViewHolder holder, final int position) {
holder.image.setImageResource(letterList.get(position).getLetterRecourceID());
holder.text.setText (letterList.get(position).getDefaultText());
holder.part.setOnClickListener ( new View.OnClickListener () {
@Override
public void onClick(View v) {
mMediaPlayer = MediaPlayer.create ( context,letterList.get ( position ).getAudioResourceId () );
mMediaPlayer.start();
}
} );
}
@Override
public int getItemCount() {
return letterList.size();
}
public void setList(ArrayList<BabyModel> letterList) {
this.letterList = letterList;
notifyDataSetChanged();
}
public class BabyViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView text;
LinearLayout part;
public BabyViewHolder(@NonNull View itemView) {
super(itemView);
image = itemView.findViewById(R.id.imagee);
text = itemView.findViewById(R.id.text);
part = itemView.findViewById(R.id.part);
}
}
}
EnglishLetterActivity
package com.example.learnn;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.learnn.databinding.ActivityEnglishcolorsBinding;
import com.example.learnn.databinding.ActivityEnglishlettersBinding;
import com.example.learnn.ui.BabyListAdapter;
import com.example.learnn.ui.BabyModel;
import com.example.learnn.ui.BabyViewModel;
import java.util.ArrayList;
public class EnglishlettersActivity extends AppCompatActivity {
BabyViewModel babyViewModel;
ImageView imagee,next;
RecyclerView recycler;
private int index = 0;
private MediaPlayer mMediaPlayer;
ArrayList arrayList,letterList;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityEnglishlettersBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_englishletters);
imagee = (ImageView)findViewById(R.id.imagee);
recycler = (RecyclerView)findViewById(R.id.recycler);
final BabyListAdapter adapter = new BabyListAdapter();
recycler.setAdapter(adapter);
GridLayoutManager layoutManager = new GridLayoutManager ( this, 3 );
recycler.setLayoutManager(layoutManager);
babyViewModel = ViewModelProviders.of(this).get(BabyViewModel.class);
babyViewModel.letterRecourceIDMutableLiveData.observe(this, new Observer<ArrayList<BabyModel>>() {
@Override
public void onChanged(ArrayList<BabyModel> babyModels) {
adapter.setList(babyModels);
}
});
babyViewModel.getLetterRecourceID();
}
}
BabyViewModel
package com.example.learnn.ui;
import com.example.learnn.R;
import java.util.ArrayList;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class BabyViewModel extends ViewModel {
ArrayList arrayList;
public MutableLiveData<ArrayList<BabyModel>> letterRecourceIDMutableLiveData = new MutableLiveData<>();
public MutableLiveData<ArrayList<BabyModel>> defaultTextMutableLiveData = new MutableLiveData<>();
public MutableLiveData<ArrayList<BabyModel>> audioResourceIdMutableLiveData = new MutableLiveData<>();
public void getLetterRecourceID(){
letterRecourceIDMutableLiveData.setValue(getDataFromDatabase());
}
public void getDefaultText(){
defaultTextMutableLiveData.setValue(getDataFromDatabase());
}
public void getAudioResourceId(){
audioResourceIdMutableLiveData.setValue(getDataFromDatabase());
}
private ArrayList<BabyModel> getDataFromDatabase(){
ArrayList<BabyModel> arrayList = new ArrayList<>();
arrayList.add(new BabyModel(R.drawable.a, "A",R.raw.a));
arrayList.add(new BabyModel(R.drawable.b,"B",R.raw.b));
arrayList.add(new BabyModel(R.drawable.c,"D",R.raw.c));
arrayList.add(new BabyModel(R.drawable.d,"D",R.raw.d));
arrayList.add(new BabyModel(R.drawable.e,"E",R.raw.e));
arrayList.add(new BabyModel(R.drawable.f,"F",R.raw.f));
arrayList.add(new BabyModel(R.drawable.g,"G",R.raw.g));
arrayList.add(new BabyModel(R.drawable.h,"H",R.raw.h));
arrayList.add(new BabyModel(R.drawable.i,"I",R.raw.i));
arrayList.add(new BabyModel(R.drawable.j,"J",R.raw.j));
arrayList.add(new BabyModel(R.drawable.k,"K",R.raw.k));
arrayList.add(new BabyModel(R.drawable.l,"L",R.raw.l));
arrayList.add(new BabyModel(R.drawable.m,"M",R.raw.m));
arrayList.add(new BabyModel(R.drawable.o,"O",R.raw.o));
arrayList.add(new BabyModel(R.drawable.p,"P",R.raw.p));
arrayList.add(new BabyModel(R.drawable.q,"G",R.raw.g));
arrayList.add(new BabyModel(R.drawable.r,"R",R.raw.r));
arrayList.add(new BabyModel(R.drawable.s,"S",R.raw.s));
arrayList.add(new BabyModel(R.drawable.t,"T",R.raw.t));
arrayList.add(new BabyModel(R.drawable.u,"U",R.raw.u));
arrayList.add(new BabyModel(R.drawable.v,"U",R.raw.u));
arrayList.add(new BabyModel(R.drawable.e,"E",R.raw.e));
arrayList.add(new BabyModel(R.drawable.w,"W",R.raw.w));
arrayList.add(new BabyModel(R.drawable.x,"X",R.raw.x));
arrayList.add(new BabyModel(R.drawable.y,"Y",R.raw.y));
arrayList.add(new BabyModel(R.drawable.z,"Z",R.raw.z));
return arrayList;
}
}
listlitteritem
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<data>
</data>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/part"
android:orientation="vertical"
android:background="@drawable/letter_style"
android:layout_margin="5dp"
android:layout_width="120dp"
android:layout_height="150dp">
<ImageView
android:gravity="center"
android:id="@+id/imagee"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
tools:context=".EnglishlettersActivity" />
<TextView
android:gravity="center_horizontal"
android:id="@+id/text"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#141414"
android:text="ddfdfdfdf"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="10dp"
/>
</LinearLayout>
</FrameLayout>
</layout>
Change made in your adpter
public BabyListAdapter(Context context) {
this.context = context;
}
In your activity
BabyListAdapter adapter = new BabyListAdapter(EnglishlettersActivity.this);