Java 在RecyclerView(Android Studio)中显示Int ArrayList

Java 在RecyclerView(Android Studio)中显示Int ArrayList,java,android,json,arraylist,android-recyclerview,Java,Android,Json,Arraylist,Android Recyclerview,我试图在一个RecyclerView中显示一个整数的ArrayList,ArrayList中的整数值是从JSON下载的,所有这些都完成了,我需要帮助的是在一个RecyclerView中显示它们 以下是主要活动的一部分: public class MainActivity extends AppCompatActivity { private ActivityMainViewModel viewmodel; RecyclerView recyclerView; RecyclerView.

我试图在一个RecyclerView中显示一个整数的ArrayList,ArrayList中的整数值是从JSON下载的,所有这些都完成了,我需要帮助的是在一个RecyclerView中显示它们

以下是主要活动的一部分:

    public class MainActivity extends AppCompatActivity {

private ActivityMainViewModel viewmodel;
RecyclerView recyclerView;
RecyclerView.Adapter mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    mAdapter = new MainAdapter(JsonData.rideList);
    recyclerView.setAdapter(mAdapter);

    ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

    viewmodel = new ActivityMainViewModel();
    binding.setViewmodel(viewmodel);
}
以下是MainAdapter类:

    class MainAdapter extends android.support.v7.widget.RecyclerView.Adapter<MainAdapter.ViewHolder> {

int ride;
private ArrayList<Integer> rideList;

public MainAdapter(ArrayList<Integer> rideList)
{
    this.rideList = rideList;
}

@Override
public MainAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_main, null);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(MainAdapter.ViewHolder holder, int position)
{
    holder.rideHeight.setText(ride);
}

@Override
public int getItemCount()
{
    return (null != rideList ? rideList.size() : 0);
}

public class ViewHolder extends RecyclerView.ViewHolder {

    public TextView rideHeight;
    public ViewHolder(View itemView) {
        super(itemView);

        rideHeight = (TextView) itemView.findViewById(R.id.rideHeight_textView);
    }
}
试试这个

@Override
public void onBindViewHolder(MainAdapter.ViewHolder holder, int position)
{
    holder.rideHeight.setText(""+ rideList.get(position));
}
除此之外

 @Override
    public void onBindViewHolder(MainAdapter.ViewHolder holder, int position)
    {
        holder.rideHeight.setText(String.valueOf(rideList.get(position)));
    }

只需将其从代码中删除即可

ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

    viewmodel = new ActivityMainViewModel();
    binding.setViewmodel(viewmodel);
活动

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    mAdapter = new MainAdapter(JsonData.rideList);
    recyclerView.setAdapter(mAdapter);
}

因此,当您在
TextView
SetText()
时,请键入值

holder.rideHeight.setText(String.valueOf(rideList.get(position)));

在访问布局内的任何视图之前,请确保已设置内容视图。 Move
ActivityMainBinding=DataBindingUtil.setContentView(this,R.layout.activity_main)
super.onCreate(savedInstanceState)后面的行

顺便说一下,无需使用
findViewById()
访问回收器视图。在数据绑定中,有一种方便的方法可以像

ActivityMainBinding=DataBindingUtil.setContentView(this,R.layout.activity_main);

binding.recycler_view.setAdapter(…)

在bindviewholder.ridehight.setText(String.valueOf(rideList.get(poission))中更改;不起作用,layoutmanager似乎有问题,请查看我的编辑。不起作用,layoutmanager似乎有问题,请查看我的编辑。
rideList.get(position) this is an `Interer` Value not `String`
holder.rideHeight.setText(String.valueOf(rideList.get(position)));