First add dependencies to android file
Add recyclerview library in build.gradle file
implementation 'androidx.recyclerview:recyclerview:1.1.0'Step 2activity_complaints.xmlThis XML file holds recyclerview component<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/rvComplaintsList"
>
</androidx.recyclerview.widget.RecyclerView>Step 3This will contain Components to be repeated via RecyclerView.complainsts_list_layout.java<?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:layout_weight="1"
android:textSize="24sp"
android:layout_gravity="center"
android:id="@+id/txtTitle"
android:text="@string/app_name"
android:paddingLeft="16sp"/>
</LinearLayout>Step 4ComplaintsActivity.javaThis will hold different tasks related to RecyclerViewpublic class ComplaintsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_complaints);
RecyclerView complaintsList = (RecyclerView) findViewById(R.id.rvComplaintsList);
complaintsList.setLayoutManager(new LinearLayoutManager(this));
String[] complaint_type = {"Mechanical Fault", "Electrical Fault","Water Supply"};
complaintsList.setAdapter(new ComplaintsAdapter(complaint_type));
}
}
Step 5Add Class ComplaintsAdapter.javaThis is the main class. This is to include View Holder & Adapter Component
The Class will look like thispackage in.xxxx.xxxxxx;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.w3c.dom.Text;
public class ComplaintsAdapter extends RecyclerView.Adapter<ComplaintsAdapter.ComplaintsViewHolder> {
private String[] data;
public ComplaintsAdapter(String[] data){
this.data = data;
}
@NonNull
@Override
public ComplaintsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.complaints_list_layout,parent,false);
return new ComplaintsViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ComplaintsViewHolder holder, int position) {
String title = data[position];
holder.txtTitle.setText(title);
}
@Override
public int getItemCount() {
return data.length;
}
public class ComplaintsViewHolder extends RecyclerView.ViewHolder {
ImageView imgIcon;
TextView txtTitle;
public ComplaintsViewHolder(@NonNull View itemView) {
super(itemView);
imgIcon = (ImageView) itemView.findViewById(R.id.imgIcon);
txtTitle = (TextView) itemView.findViewById(R.id.txtTitle);
}
}}This RecyclerView Tutorial worth a read as it helped me to learn this staff pretty easily.
Comments
Post a Comment