Recyclerview:无法获得项目计数值

时间:2019-01-18 02:09:52

标签: android-recyclerview recycler-adapter

我是新手,...我在recyclerview上获取商品计数有问题吗?我已经尝试过此代码,但是无法正常工作。

 int count = 0;
 if (recyclerViewInstance.getAdapter() != null) {
 count = recyclerViewInstance.getAdapter().getItemCount();
 }

也是这个,但是它也不能正常工作。

   int count = 0;
   if (mAdapter != null) {
   count = mAdapter.getItemCount();
   }

这是我的代码:

mainActivity:

private List<NavDrawerFleetGetterSetter> navList= new ArrayList<>();
private RecyclerView recyclerView;
private NavDrawerFleetAdapter mAdapter;
Button add;
TextView successCount;

     protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nav_drawer_fleet);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    add = findViewById(R.id.fab);

    successCount=findViewById(R.id.count);
    recyclerView =findViewById(R.id.nav_sent);
    mAdapter = new NavDrawerFleetAdapter(navList);
    RecyclerView.LayoutManager mLayoutManager = new 
    LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(mLayoutManager);
    recyclerView.setAdapter(mAdapter);

  if (recyclerView.getAdapter() != null) {
  successCount.getText(recyclerViewInstance.getAdapter().getItemCount());
 } 

       add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        NavDrawerFleetGetterSetter navD= new 
        NavDrawerFleetGetterSetter(lati,longi,dateTime);
        navList.add(navD);
        mAdapter.notifyDataSetChanged();

}

myGetterSetter:

公共类NotSentModuleGetterSetter {     字符串lat,lon,dateTime;

public NotSentModuleGetterSetter(String lat, String lon, String dateTime) {
    this.lat = lat;
    this.lon = lon;
    this.dateTime = dateTime;
}

public String getLat() {
    return lat;
}

public void setLat(String lat) {
    this.lat = lat;
}

public String getLon() {
    return lon;
}

public void setLon(String lon) {
    this.lon = lon;
}

public String getDateTime() {
    return dateTime;
}

public void setDateTime(String dateTime) {
    this.dateTime = dateTime;
}

}

myOutput:

enter image description here

如您所见,成功计数变为零。 顺便说一句,我的数据进入了我的数据库,由于需要大量的代码,所以我正在获取代码需求。

还有一个使用调试功能的mAdapter = null数据。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我正在获取适配器上的计数数据,但应该获得适配器的“大小”,而不是获得“计数”。现在对我有效。 :)

相关问题