@Override
public void onDataChange(DataSnapshot dataSnapshot) {
RoomListQuery.this.setLoading(false);
//mListAdapter.setLoading(false);
if (!dataSnapshot.hasChildren()) {
RoomListQuery.this.currentPage--;
}
int i = 0;
for (DataSnapshot ds : dataSnapshot.getChildren()) {
Room room = ds.getValue(Room.class);
roomList.add(room); // here instead
updateRoom(room, i);
i++;
}
handler.onResult(roomList, (customException) null);
}
...
// outside of the ValueEventListener
public void updateRoom(room, index) {
Room.getRoom(room.getId(), new Room.RoomGetHandler() {
@Override
public void onResult(Room room, customException e) {
if (e != null) {
// Error!
e.printStackTrace();
return;
}
room._loadedDetails = true; // make that publicly accessible boolean, or include a setter method instead
roomList.set(index, room);
}
});
}
我是编程新手......
我试图打印数字如果它在30秒内发生了5次...... 我输入1到9 ..如果相同的输入发生了5次,在30秒内我想要打印..
答案 0 :(得分:0)
你有一些错误:
您可能想要替换:
if(time < time.AddSeconds(30))
将某些内容与当前时间进行比较,例如:
if(DateTime.Now < time.AddSeconds(30))
您还在检查方法中将计数递增两次,不确定这是否是故意的。
在do循环内部,你的开关体需要在{}内部,你可能应该每次都读取一个新的输入或做其他事情来改变输入,否则你的循环将永远运行。
您还应始终验证用户输入。在这种情况下,如果有人输入的数字不是数字,那么您的应用程序将从此代码中崩溃:
sinput = Console.ReadLine();
input = int.Parse(sinput);
而是查找int.TryParse方法。
答案 1 :(得分:0)
您可以创建类似于记录某个输入值的数据的类(即存储它们的输入日期)和绑定它们的类。比如,在伪代码中:
class SingleInputLogger {
List<Date> dates
void addDate(Date date){
push date in dates
}
unsigned int currentSize(){
remove all entries from dates which are too old
return size of dates
}
}
class InputLogger {
Array<SingleInputLogger> singleInputLoggers of size 10 (or 9 if only 1..9, but then mind the offset)
//adds an input and also returns true if the input has a count of more than five
void addInput(int input){
singleInputLoggers[input].addDate(currentTime())
}
bool checkInput(int input){
if(singleInputLoggers[input].currentSize() >= 5){
return true
}
return false
}
然后主程序变为
InputLogger logger
while(get input){
logger.addInput(input)
if(logger.checkInput(input)){
display message "input " + input + " was entered more than five times in 30s"
}
}
(List用于表示链接列表,以便能够有效地删除前端条目,Array用于指示静态大小的结构以便快速访问)
请记住让这样的课程为您完成工作。尝试使用尽可能少的函数,而不是使用方法。
如果某人有更好的名字(我承认我的名字不是那么好),请随时编辑我的答案。