首页 > 解决方案 > 动态添加的列表视图上的列表视图编号

问题描述

我想为视图添加编号。添加步骤时,数字可以从 1 到 2 到 3 等等。

有没有办法做到这一点以及删除它的数字下降?如图所示,在我输入号码的地方有一个灰色圆圈。

在此处输入图像描述

活动

View stepView = getLayoutInflater().inflate(R.layout.item_steps,null,false);
private void addStepsView() {

        View stepView = getLayoutInflater().inflate(R.layout.item_steps,null,false);

        EditText etStepsDetails = (EditText)stepView.findViewById(R.id.etStepsDetails);
        ImageView ivStepsImage = (ImageView) stepView.findViewById(R.id.ivStepsImage);
        ImageView imageDelete = (ImageView)stepView.findViewById(R.id.ivDelete);
        TextView tvStepPos = (TextView) stepView.findViewById(R.id.tvStepsPosition);


        ivStepsImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                CropImage.activity()
                        .setAspectRatio(1,1)
                        .start(PostActivity.this);
            }
        });

        imageDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                removeStepsView(stepView);
            }
        });

       // tvStepPos.setText(String.valueOf(""+1));
        layoutStepList.addView(stepView);
    }

    private void removeStepsView(View view){

        layoutStepList.removeView(view);
    }

适配器

public class StepsAdapter extends RecyclerView.Adapter<StepsAdapter.StepsViewHolder> {

    private Context nContext;
    private List<Steps> stepList;
    private FirebaseUser firebaseUser;
    private String[] numberWord;
    private LayoutInflater inflater;
    private StepsAdapter.OnItemClickListener mListener;
    public interface OnItemClickListener {
        void onItemClick(int position);
        void onDeleteClick(int position);
    }


public StepsAdapter(Context context, List<Steps> stepList,String[] numberWord) {
        this.nContext = context;
        this.numberWord = numberWord;
        this.stepList = stepList;
    }

    public void setOnItemClickListener(StepsAdapter.OnItemClickListener listener){
        mListener = listener;
    }

    @NonNull
    @Override
    public StepsAdapter.StepsViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
        //View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recipe_item, viewGroup, false);
        View view = LayoutInflater.from(nContext).inflate(R.layout.recipe_item, viewGroup, false);

        return new StepsAdapter.StepsViewHolder(view, mListener);

    }

    @Override
    public void onBindViewHolder(@NonNull StepsAdapter.StepsViewHolder holder, int i) {
        firebaseUser = FirebaseAuth.getInstance().getCurrentUser();

        Steps currentItem = stepList.get(i);
        int pos = i+1;
        holder.tvStepsPosition.setText(""+pos);



        Steps steps = stepList.get(i);
        holder.tvStepsList.setText(steps.getSteps());
        //holder.ivStepsImage.setImageResource();

        Glide.with(nContext).load(steps.getStepsImage())
                .apply(new RequestOptions().placeholder(R.drawable.ic_image))
                .into(holder.ivStepsImage);

    }

    @Override
    public int getItemCount() {
        return stepList.size();
    }

    public Steps getSteps(int position){
        return stepList.get(position);
    }


    class StepsViewHolder extends RecyclerView.ViewHolder {
        ImageView ivStepsImage;
        TextView tvStepsPosition;
        TextView tvStepsList;
        ImageView ivDelete;


        StepsViewHolder(View itemView, final StepsAdapter.OnItemClickListener listener) {
            super(itemView);
            tvStepsList = itemView.findViewById(R.id.etStepsDetails);
            ivStepsImage = itemView.findViewById(R.id.ivStepsImage);
            ivDelete = itemView.findViewById(R.id.ivDelete);

            tvStepsPosition = itemView.findViewById(R.id.tvStepsPosition);

            ivDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(listener != null){
                        int position = getAdapterPosition();
                        if(position != RecyclerView.NO_POSITION){
                            listener.onDeleteClick(position);
                        }
                    }
                }
            });
        }
    }
}

标签: javaandroidadapter

解决方案


推荐阅读