Java 在RecyclerView(Android Studio)中显示Int ArrayList
我试图在一个RecyclerView中显示一个整数的ArrayList,ArrayList中的整数值是从JSON下载的,所有这些都完成了,我需要帮助的是在一个RecyclerView中显示它们 以下是主要活动的一部分: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.
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)));