android RecyclerView的做法

想做表單可以使用gridview或是listview

或是新的RecyclerView。

可以直接在MainActivity新增要使用的adapter class

RecyclerView需要三個東西

自定義一個放資料的class

Adapter和Adapter中的ViewHolder


1.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder>{
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.my_list,viewGroup,false);
return new MyHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyHolder myHolder, int i) {
myHolder.icon.setImageResource(myData.get(i).getResource());
myHolder.name.setText(myData.get(i).getName());
}
@Override
public int getItemCount() {
return myData.size();
}
public class MyHolder extends RecyclerView.ViewHolder{
ImageView icon;
TextView name;
public MyHolder(@NonNull View itemView) {
super(itemView);
icon = itemView.findViewById(R.id.icon);
name = itemView.findViewById(R.id.text);
}
}
}
view raw adapter.java hosted with ❤ by GitHub
adapter裡面再新增一個view holder,
要實作方法的時候可以在底部有紅線的地方,
使用alt+insert看需要哪些方法。




之後寫一個提供資料的class




2.


public class MyData{
int resource;
String name;
public MyData(int resource, String name) {
this.resource = resource;
this.name = name;
}
public int getResource() {
return resource;
}
public void setResource(int resource) {
this.resource = resource;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
view raw mydata.java hosted with ❤ by GitHub




3.
myData = new ArrayList<>();
myData.add(new MyData(R.drawable.cd_example,"123"));
myData.add(new MyData(R.drawable.cd_example,"123"));
RecyclerView rv = findViewById(R.id.rv);
rv.setHasFixedSize(true);
rv.setLayoutManager(new GridLayoutManager(this,4));
MyAdapter adapter = new MyAdapter();
rv.setAdapter(adapter);
view raw main.java hosted with ❤ by GitHub





留言

這個網誌中的熱門文章

android service作法

android app之間使用socket做溝通

html css & bootstrap心得