Java 如何使用String.format()
我有一个RecyclerView适配器类,它显示了来自(从服务器获取数据的用户类)的用户信息。我的上级告诉我:你的代码有问题,你应该找出原因,他说我应该使用String.format(),他还说:(如果else不是一个好的解决方案,那么如果有100个用户而不是10个呢?或者如果每天都添加新用户,你应该优化你的代码,最后,他说在其中查找String.format和%d) 该应用程序工作正常,但我不明白他到底想做什么,我试图在互联网上找到解决方案,但我没有。我需要你的帮助,请 我的适配器类:Java 如何使用String.format(),java,android,string,Java,Android,String,我有一个RecyclerView适配器类,它显示了来自(从服务器获取数据的用户类)的用户信息。我的上级告诉我:你的代码有问题,你应该找出原因,他说我应该使用String.format(),他还说:(如果else不是一个好的解决方案,那么如果有100个用户而不是10个呢?或者如果每天都添加新用户,你应该优化你的代码,最后,他说在其中查找String.format和%d) 该应用程序工作正常,但我不明白他到底想做什么,我试图在互联网上找到解决方案,但我没有。我需要你的帮助,请 我的适配器类: pub
public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserViewHolder> {
private List<User> userList;
private Context context;
private OnItemClickListener listener;
public UserAdapter(List<User> userList, Context context) {
this.userList = userList;
this.context = context;
}
@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.users_layout, parent, false);
return new UserViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
User user = userList.get(position);
if (user != null) {
holder.imageView.setAnimation(AnimationUtils.loadAnimation
(context, R.anim.fade_transition_anim));
holder.linearLayout.setAnimation(AnimationUtils.loadAnimation
(context, R.anim.fade_scale_animation));
holder.txtName.setText(user.getName());
holder.txtEmail.setText(user.getEmail());
holder.txtInfo.setText(user.getCompany().getCatchPhrase());
switch (user.getId()) {
case 1:
Glide.with(context).load("https://avatars.io/twitter/1").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 2:
Glide.with(context).load("https://avatars.io/twitter/2").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 3:
Glide.with(context).load("https://avatars.io/twitter/3").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 4:
Glide.with(context).load("https://avatars.io/twitter/4").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 5:
Glide.with(context).load("https://avatars.io/twitter/5").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 6:
Glide.with(context).load("https://avatars.io/twitter/6").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 7:
Glide.with(context).load("https://avatars.io/twitter/7").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 8:
Glide.with(context).load("https://avatars.io/twitter/8").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 9:
Glide.with(context).load("https://avatars.io/twitter/9").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
case 10:
Glide.with(context).load("https://avatars.io/twitter/10").placeholder(R.drawable.default_128)
.into(holder.imageView);
break;
default:
Glide.with(context).load(R.drawable.default_128)
.into(holder.imageView);
break;
}
}
}
@Override
public int getItemCount() {
int a;
if (userList != null && !userList.isEmpty()) {
a = userList.size();
} else {
a = 0;
}
return a;
}
public class UserViewHolder extends RecyclerView.ViewHolder {
private CircleImageView imageView;
private TextView txtName, txtEmail, txtInfo;
private LinearLayout linearLayout;
public UserViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.img_user);
txtName = itemView.findViewById(R.id.txt_user_name);
txtEmail = itemView.findViewById(R.id.txt_user_email);
txtInfo = itemView.findViewById(R.id.txt_user_info);
linearLayout = itemView.findViewById(R.id.anim_container);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
int position = getAdapterPosition();
if (position != RecyclerView.NO_POSITION) {
listener.OnItemClick(position);
}
}
}
});
}
}
public interface OnItemClickListener {
void OnItemClick(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener;
}
}
公共类UserAdapter扩展了RecyclerView.Adapter{
私有列表用户列表;
私人语境;
私人监听;
公共用户适配器(列表用户列表、上下文){
this.userList=userList;
this.context=上下文;
}
@非空
@凌驾
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
View-View=LayoutInflater.from(parent.getContext()).flate(R.layout.users\u布局,parent,false);
返回新的UserViewHolder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull UserViewHolder,int位置){
User=userList.get(位置);
如果(用户!=null){
holder.imageView.setAnimation(AnimationUtils.loadAnimation
(上下文,R.anim.fade_transition_anim));
holder.linearLayout.setAnimation(AnimationUtils.loadAnimation
(上下文,R.anim.fade_scale_animation));
holder.txtName.setText(user.getName());
holder.txtEmail.setText(user.getEmail());
holder.txtInfo.setText(user.getCompany().getCatchPhrase());
开关(user.getId()){
案例1:
Glide.with(context.load)(“https://avatars.io/twitter/1)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例2:
Glide.with(context.load)(“https://avatars.io/twitter/2)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例3:
Glide.with(context.load)(“https://avatars.io/twitter/3)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例4:
Glide.with(context.load)(“https://avatars.io/twitter/4)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例5:
Glide.with(context.load)(“https://avatars.io/twitter/5)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例6:
Glide.with(context.load)(“https://avatars.io/twitter/6)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例7:
Glide.with(context.load)(“https://avatars.io/twitter/7)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例8:
Glide.with(context.load)(“https://avatars.io/twitter/8)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例9:
Glide.with(context.load)(“https://avatars.io/twitter/9)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
案例10:
Glide.with(context.load)(“https://avatars.io/twitter/10)占位符(R.drawable.default_128)
.插入(支架.图像视图);
打破
违约:
Glide.with(context.load)(R.drawable.default_128)
.插入(支架.图像视图);
打破
}
}
}
@凌驾
public int getItemCount(){
INTA;
if(userList!=null&&!userList.isEmpty()){
a=userList.size();
}否则{
a=0;
}
返回a;
}
公共类UserViewHolder扩展了RecyclerView.ViewHolder{
私有CircleImageView图像视图;
私有文本视图txtName、txtmail、txtInfo;
私人线性布局线性布局;
public UserViewHolder(@NonNull View itemView){
超级(项目视图);
imageView=itemView.findViewById(R.id.img_用户);
txtName=itemView.findviewbyd(R.id.txt\u用户名);
txtEmail=itemView.findviewbyd(R.id.txt\u user\u email);
txtInfo=itemView.findviewbyd(R.id.txt\u user\u info);
linearLayout=itemView.findviewbyd(R.id.anim_容器);
itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(侦听器!=null){
int position=getAdapterPosition();
如果(位置!=RecyclerView.无位置){
listener.OnItemClick(位置);
}
}
}
});
}
}
公共接口侦听器{
无效单击(内部位置);
}
公共void setOnItemClickListener(OnItemClickListener侦听器){
this.listener=listener;
}
}
你的上级告诉你的是:
case 1:
Glide.with(context).load("https://avatars.io/twitter/1")
这简直是疯了
意思:你们所有的开关箱都是一样的。唯一不同的是数量不同
这样的重复
Glide.with(context).load(String.format("https://avatars.io/twitter/%i", theNumber), ...