0

我正在尝试FirebaseDatabase根据时间过滤内容,为此我创建了一个方法并从FastAdapter.bindView()RecyclerView

我正在使用以下代码从 startTime 中减去 currentTime:

holder.now = System.currentTimeMillis() / 1000;
holder.startTimeDateInEpochLong = Long.parseLong(holder.startDateTimeInEpoch.getText().toString());
holder.diff = holder.startTimeDateInEpochLong - holder.now;
Log.d("log1", String.valueOf(holder.diff));

然后使用holder.diff来执行 的方法中的逻辑,MainActivity并像这样调用该方法bindView()

MainActivity.filterButton.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                if(holder.mContext instanceof MainActivity){
                    ((MainActivity)holder.mContext).filterRequests(holder.diff);
                    Log.d("log2", String.valueOf(holder.diff));
                }
                return true;
            }
        });

问题是它log1显示了所有的值,holder.difflog2只显示了最后一个获取的值,并且只使用它来执行逻辑。

如何确保.filterRequests(holder.diff)使用 的所有值执行逻辑holder.diff

请告诉我。

4

1 回答 1

0

尝试使用 TimeStamp 数据类型而不是 long。希望它会奏效。

于 2016-12-02T06:20:45.800 回答