一、ListView
使用系统内置的布局
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List list = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String [] s = {"a","b","c"};
listView = findViewById(R.id.listpro_listview);
listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,
s
));
}
}
android.R.layout.simple_list_item_1是系统内置的布局文件,只能显示一个文本值。
使用自定义的布局
mainactivity:
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List<Person> list = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initPerson();
listView = findViewById(R.id.listpro_listview);
MyAdapter adapter = new MyAdapter(MainActivity.this,R.layout.item,list);
listView.setAdapter(adapter);
}
private void initPerson() {
for (int i = 0;i<2;i++){
Person p1 = new Person(R.drawable.ic_launcher_background,"ll");
list.add(p1);
}
}
}
public class MyAdapter extends ArrayAdapter<Person> {
private int resouseId;
public MyAdapter(Context context, int layout, List<Person> list){
super(context,layout,list);
resouseId = layout;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
Person person = getItem(position);
convertView = LayoutInflater.from(getContext()).inflate(resouseId,parent,false);
ImageView imageView = convertView.findViewById(R.id.listpro_iamgeview);
TextView textView = convertView.findViewById(R.id.listpro_textview);
imageView.setImageResource(person.getImageId());
textView.setText(person.getName());
return convertView;
}
}
二、RecycleView
使用recycleview需要先导包:
需要在app/build.gradle中引入,具体代码如下:
implementation 'androidx.recyclerview:recyclerview:1.1.0'
public class Myadapter extends RecyclerView.Adapter<Myadapter.MyViewHolder> {
private Context context;
private List<Beautifu_Person> personlist;
public Myadapter(Context context, List<Beautifu_Person> list) {
this.context = context;
this.personlist = list;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(context,R.layout.item_view_recycle,null);
return (new MyViewHolder(view)) ;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
Beautifu_Person bp = personlist.get(position);
holder.imageView.setImageResource(bp.getImageId());
holder.textView.setText(bp.getName());
}
@Override
public int getItemCount() {
return personlist == null? 0:personlist.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
private ImageView imageView;
private TextView textView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.item_imageview_recycle);
textView = itemView.findViewById(R.id.item_textview1_recycle);
}
}
}
public class MainActivity extends AppCompatActivity {
private RecyclerView rv;
private List<Beautifu_Person> list = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv = findViewById(R.id.recycleview);
initPerson();
// LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
// rv.setLayoutManager(linearLayoutManager);
// GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3);
// rv.setLayoutManager(gridLayoutManager);
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3,
StaggeredGridLayoutManager.VERTICAL
);
rv.setLayoutManager(staggeredGridLayoutManager);
Myadapter myadapter = new Myadapter(MainActivity.this,list);
rv.setAdapter(myadapter);
}
public void initPerson(){
for (int i = 0;i<7;i++) {
Beautifu_Person mv2 = new Beautifu_Person(R.drawable.meinv4, "mv2");
list.add(mv2);
Beautifu_Person mv3 = new Beautifu_Person(R.drawable.meinv5, "mv3");
list.add(mv3);
Beautifu_Person mv4 = new Beautifu_Person(R.drawable.meinv6, "mv4");
list.add(mv4);
Beautifu_Person mv5 = new Beautifu_Person(R.drawable.meinv7, "mv5");
list.add(mv5);
Beautifu_Person mv6 = new Beautifu_Person(R.drawable.meinv9, "mv6");
list.add(mv6);
}
}
}