AndroidStudio RecyclerView控件
MainActivity Java代码
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class MainActivity extends AppCompatActivity {
private String[] step = new String[]{"轿车车型生产环节1", "轿车车型生产环节2", "轿车车型生产环节3",
"轿车车型生产环节4", "轿车车型生产环节5", "轿车车型生产环节6", "轿车车型生产环节7",
"轿车车型生产环节8", "轿车车型生产环节9", "轿车车型生产环节10", "轿车车型生产环节11",
"轿车车型生产环节12", "轿车车型生产环节13", "轿车车型生产环节14", "轿车车型生产环节15",
"轿车车型生产环节16", "轿车车型生产环节17", "轿车车型生产环节18", "轿车车型生产环节19",
"轿车车型生产环节20"};
private String[] stepName = new String[]{"轿车汽车放置底盘", "轿车汽车左前悬挂", "轿车汽车右前悬挂",
"轿车汽车左后悬挂", "轿车汽车右后悬挂", "轿车汽车固定车架", "轿车汽车发动机", "轿车汽车椅子",
"轿车汽车方向盘", "轿车汽车左前车门", "轿车汽车右前车门", "轿车汽车左后车门", "轿车汽车右后车门",
"轿车汽车引擎盖", "轿车汽车前挡风玻璃", "轿车汽车后挡风玻璃", "轿车汽车左前轮胎", "轿车汽车右前轮胎",
"轿车汽车左后轮胎", "轿车汽车右后轮胎"};
private RecyclerView rvMainStage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
rvMainStage.setLayoutManager(new LinearLayoutManager(this));
StepAdapter adapter=new StepAdapter(step,stepName);
rvMainStage.setAdapter(adapter);
}
private void initView() {
rvMainStage = (RecyclerView) findViewById(R.id.rvMainStage);
}
}
添加适配器:
适配器Java代码:
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
//2.将适配器类继承,指定范类自定义类ViewHolder
public class StepAdapter extends RecyclerView.Adapter<StepAdapter.ViewHolder> {
//4.声明和初始化数据接口
private String[] step;
private String[] stepName;
//
public StepAdapter(String[] step,String[] stepName){
this.step=step;
this.stepName=stepName;
}
//1.定义静态内部类
//ViewHolder类的定义,XML-JAVA描述类
static class ViewHolder extends RecyclerView.ViewHolder{
//1.2声明控件
TextView tvStep,tvStepName;
//1.1 构造方法
public ViewHolder(@NonNull View itemView) {
super(itemView);
//1.3findViewById 获取控件
tvStep=itemView.findViewById(R.id.tvItemStep);
tvStepName=itemView.findViewById(R.id.tvItemStepName);
}
}
//3.导入需要实现的方法
@NonNull
@Override
//6. onCreateViewHolder() 创建ViewHolder对象
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//创建列表布局文件
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_rv_main_stage,null) ;
//创建viewHolder对象
ViewHolder viewHolder=new ViewHolder(view);
return viewHolder;
}
@Override
//7. onBindViewHolder
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//根据position获取单条数据
String step_=step[position];
String stepName_=stepName[position];
//将数据赋值给ViewHolder对象的列表项控件
holder.tvStep.setText(step_);
holder.tvStepName.setText(stepName_);
//绑定数据时,可以对控件进行属性配置
// if (position/2==0){
// holder.tvStepName.setBackgroundColor(Color.RED);
// }
}
//5.重写getItemCount(),返回数据集数量
@Override
public int getItemCount() {
//如果 step.length!=stepName.length;会崩掉
return step.length;
}
}