RecycleListView+Custom จำเป็นไหม?


สวัสดีครับ วันนี้เราก็จะมาพูดถึงเกี่ยวกับการใช้ RecycleListView ครับ ว่ามีความจำไหมหากเราต้องการทำลิสต์รายการ ถ้าพูดถึง RecycleListView แล้วนั้นแน่นอนครับว่าต้องต่างจาก ListView ธรรมดาอย่างแน่นอน ข้อแตกต่างที่เห็นได้ชัดเจนคือ RecycleListView ไม่มี setOnItemClick นะครับ หากเราต้องการใช้งานต้องทำการเขียนเพิ่มเองครับ ถ้าในเรื่องของประสิทธิภาพ RecycleListView ก็คงจะดีกว่าครับ แต่จากการใช้ก็ไม่เห็นว่ามีความแตกต่างมากนัก ถ้าแอปพลิเคชันที่เราทำไม่ได้มีความจำเป็นด้านประสิทธิภาพมากนักใช้ ListView แบบธรรมดาก็ได้ครับ เรามาดูวิธีการทำ RecycleListView กันเลยครับว่ามีแนวทางการเขียนโค้ดกันยังไง
เปิดไฟล์ Gradle Script/build.gradle(Module:app) แล้วเพิ่ม

compile 'com.android.support:recyclerview-v7:23.4.0'

เปิดไฟล์ layout/activity_main.xml
 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.geekcreator.lenovo.bg.MainActivity">

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycle_list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</RelativeLayout>

สร้างไฟล์ layout/custom_recycle_list_view.xml
  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<TextView
    android:id="@+id/text_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="text_list"
    android:layout_margin="16dp"
    />
</LinearLayout>

สร้างไฟล์ java/ModelRecycleList.java

public class ModelRecycleList {
    private String TextList;
    public Product(String txtList) {
        this.TextList = txtList;

    }
    public String getTextList () {
        return TextList;
    }
    public void setTextList (String txtList) {
        this.TextList = txtList;
    }
}

สร้างไฟล์ java/CustomRecycleListView.java

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;


public class CustomRecycleListView extends RecyclerView.Adapter<CustomRecycleListView.MyViewHolder> {
    private List<ModelRecycleList> listItem;
    Context context;
    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView txtList;
        public MyViewHolder(View view) {
            super(view);
            txtList = (TextView) view.findViewById(R.id.text_list);
            
        }
    }
    public CustomRecycleView(Context context,List<ModelRecycleList> listItem) {
        this.context = context;
        this.listItem = listItem;
    }
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.custom_recycle_list_view, parent, false);
        return new MyViewHolder(itemView);
    }
    public void onBindViewHolder(MyViewHolder holder, int position) {
        ModelRecycleList modelRecycleList = listItem.get(position);
        holder.txtList.setText(modelRecycleList.getTextList());
        
    }
    @Override
    public int getItemCount() {
        return listItem.size();
    }
}

เปิดไฟล์ java/MainActivity.java

public class MainActivity extends AppCompatActivity{

 private ArrayList<ModelRecycleList> arrayListModel = new ArrayList<>();
    private CustomRecycleListView customListViewAdapter;
    private RecyclerView listView;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (RecyclerView)findViewById(R.id.recycle_list_view);

        arrayListModel.add(new ModelRecycleList(“title1”));
        arrayListModel.add(new ModelRecycleList(“title2”));


        customListViewAdapter = new new CustomRecycleView(MainActivity.this,arrayListModel);
        listView.setAdapter(customListViewAdapter);
}

}

เพียงเท่าก็สามารถใช้ RecycleListView ได้แล้วครับ หากมีข้อสงสัยก็สามารถคอมเมนต์ไว้ได้ที่โพสต์ด้านล่างเลยครับ และสามารถกดติดตามเพื่อที่จะไม่พลาดเทคนิคที่นำมาฝากกันครับ สำหรับวันนี้สวัสดีครับ

ความคิดเห็น

บทความที่ได้รับความนิยม