• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

ArrayList & ListIterator Help

 
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Okay, so I am not sure exactly what information I need to give, but I will try...

I have a program called "QuestionBuilder" that will allow the user to enter several fields for a trivia question and some answers, then hit the 'Next' button. They will also be able to hit the 'Previous' buttons, but the Previous button is disabled unless you are on any element after the first (a preventative measure). Previous goes to the last element in the Array, Next moves forward. Here is how it is set up:

questionIndex is my counter. It starts at 0.
ArrayList questionSheet is initiated (errors are returned but they don't stop the program from running--can anyone explain this?)

User enters question and answer fields, then hits 'Next' button.

Upon hitting the Next button, it'll do the following:

My Question Class Constructor:


My Question Status Checking Method:


My 'Previous' button code:


My 'Next' button code:


Some other things to explain:

hasNext does exactly what it should--it checks to see if the questionIndex is less than the size of the Array - 1. If there is any difference between the two numbers, it has a next location in the Array.

setQuestionStatus() basically is run at the end of the major methods that might change any of my booleans. The booleans are updated, which then focuses on enabling/disabling buttons and making sure my counts are correct and such.

setCurrentQuestion() takes the questionIndex AFTER it is being incremented or decremented and will set the fields to the question that it pulls out of the area (does a simple questionSheet.get(questionIndex) call).


Alright, so information out of the way (I think), I'll tell you what it is doing...

When I hit Next, it should:

- Check to see if it has a next question (should have done this already but just simplifying in this list)
- If it does, save existing question, clear the fields, then repopulate the fields with the new info
- If it does not, add existing question to array, clear fields


When I hit Previous it should:

- Check to see if the current question has been added to the Array (I can't use a simple indexOf because it could have been changed -- THIS IS THE TRICKY PART FOR ME)
- If it does, save the existing question, clear the fields, and move on
- If it does not, add the question to the area, clear the fields, and move on
- Repopulate the fields with the values for the previous question
- Check to see if it is the first question and disable the previous button if so


My program works great. I hit next, next, next, and I watch the number of the question go up and up (the title label which I have in my swing). PERFECT. Then I hit previous, previous, previous... also working like a charm! However, somewhere along the way, it skips numbers. I think the "isLastQuestion" boolean I have set up is not working properly. I have it call at the end of the buttons to replace the values, and check for the Array size - 1, as I think it should... but somewhere it starts cutting out, and I cannot find a pattern.

There is another problem, but I want to find the fix to this one first... if anyone could help, I would STRONGLY appreciate it. I know this has been a lot of code and text to read through!
 
Ranch Hand
Posts: 156
Android Eclipse IDE
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In the method nextQuestion() is is necessary to do

in the else part. When you are already at the end of the list?
 
Brian Drelling
Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes it is, because when you hit the next button and previous button, they eventually have to increment/decrement during the method at some point.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic