[尝试使用recyclerview时,我无法在视图持有者的对象中获取内容

问题描述 投票:0回答:1

我正在尝试使用recyclerview,并且正在尝试在item参数中的viewholder使用编号中设计'setText'方法。

问题是,当我在setText方法应用程序中放入“ item.getNumber()”时不起作用。我不知道为什么当我只将字符串放入方法中就没有问题,而放入“ item.getNumber()”却没有错误消息的问题。

适配器:

public class adapter extends RecyclerView.Adapter<adapter.ViewHolder> {
    ArrayList<data> items=new ArrayList<data>();

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater=LayoutInflater.from(parent.getContext());
        View itemView= inflater.inflate(R.layout.itemlayout, parent,false);
        return new ViewHolder(itemView);
    } 

    public void additem(data item){
        items.add(item);
    }

    @Override
    public void onBindViewHolder(@NonNull adapter.ViewHolder holder, int position) {
        data item=items.get(position);
        holder.setText(item);
    }

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

    static class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
        EditText editText;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.textView);
            editText = itemView.findViewById(R.id.editText);
        }

        public void setText(data item) {
            textView.setText(item.getNumber());
            editText.setHint(item.getSentences());
        }
    }
}

mainActivity:

public class MainActivity extends AppCompatActivity {
    static int num = 6;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        RecyclerView recyclerView = findViewById(R.id.recyclerview);
        adapter adapter1 = new adapter();
        for (int i = 0; i < num; i++) {
            adapter1.additem(new data("sentences", i + 1));
        }
        recyclerView.setAdapter(adapter1);
        LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(layoutManager);
    }
}

data.java:

public class data {
    String sentences = null;
    int number;

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public data(String sentences, int number) {
        this.sentences = sentences;
        this.number = number;
    }

    public String getSentences() {
        return sentences;
    }

    public void setSentences(String sentences) {
        this.sentences = sentences;
    }
}
java android-studio android-recyclerview android-viewholder
1个回答
0
投票

问题是您的getNumber()方法返回int

© www.soinside.com 2019 - 2024. All rights reserved.