1. Define in adapter with inter face
public class programmingAdapter extends RecyclerView.Adapter<programmingAdapter.programmingViewHolder> {
String[] data;
iItemClickListnerRK iItemClickListnerRk;
public programmingAdapter(String[] data, iItemClickListnerRK iItemClickListnerRk) {
this.data = data;
this.iItemClickListnerRk = iItemClickListnerRk;
}
@Override
public programmingViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.list_item_layout, parent, false);
return new programmingViewHolder(view);
}
@Override
public void onBindViewHolder(programmingViewHolder holder, int position) {
String title = data[position];
holder.txtTitle.setText(title);
holder.itemView.setOnClickListener(view -> {
iItemClickListnerRk.onClickItemListnerRK(title, position);//this will get current index of item in recyclerView
});
}
@Override
public int getItemCount() {
return data.length;
}
public interface iItemClickListnerRK {
void onClickItemListnerRK(String itemNameRK, int idx);
}
public class programmingViewHolder extends RecyclerView.ViewHolder {
ImageView imgIcon;
TextView txtTitle;
public programmingViewHolder(View itemView) {
super(itemView);
imgIcon = itemView.findViewById(R.id.imgIcon);
txtTitle = itemView.findViewById(R.id.txtTitle);
}
}
}
2. Apply in MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView=findViewById(R.id.programmingListRK);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
String[] lng={"Java","C Sharp","C plus plus","Dot net","PHP","Python","C Sharp","C plus plus","Dot net","PHP","Python","C Sharp","C plus plus","Dot net","PHP","Python"};
programmingAdapter adapter = new programmingAdapter(lng, new programmingAdapter.iItemClickListnerRK() {
@Override
public void onClickItemListnerRK(String itemNameRK, int idx) {
Toast.makeText(MainActivity.this, "Clicked => P:"+idx+", item:"+itemNameRK, Toast.LENGTH_SHORT).show();
}
});
recyclerView.setAdapter(adapter);
}
}
3. xml main
<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView
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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/programmingListRK"
tools:context=".MainActivity">
</androidx.recyclerview.widget.RecyclerView>4. xml list view for recycler
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imgIcon"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:id="@+id/txtTitle"
android:textSize="24sp"
android:layout_gravity="center"
android:layout_weight="1"
android:layout_marginLeft="16dp"/>
</LinearLayout>
No comments:
Post a Comment