How to save points after popup close and avoid repetition from SQLite?
<p>I have 36 imageButtons and with each one I call the same popup in which I set random question from sqlite database. When user answers question by clicking one of the 4 possible solutions it closes and goes back to my 36 buttons. Now here I have 2 problems:</p>

<ol>
<li><p>I use this code to avoid repeating questions. In activity scope:</p>

<p>LinkedList mAnsweredQuestions = new LinkedList();</p>

<pre><code>private String generateWhereClause(){
    StringBuilder result = new StringBuilder();
    for (Long l : mAnsweredQuestions){
        result.append(" AND _ID &lt;&gt; " + l);
    }
    return result.toString();
}
</code></pre>

<p>and in my question method:</p>

<p>mAnsweredQuestions.add(c.getLong(0));</p></li>
</ol>

<p>But this does not work when my activity resumes after popup question close. It's like it loads my activity from scratch. I use this in my other game and it works fine in "normal" activity, but for some reason after popup it does not.</p>

<p>2.I need for each imageButton press to launch this popup activity and after each correct answer to save different number of points. I used startActivityForResult in my other game to start activity and save result, but in that case I was starting different activities with each button. Now I have to start the same activity, and save back different results. How can I do that?
Here's my popup question class:</p>

<pre><code>public class Pitanja_Cigle extends Activity{

    public static String tacanOdg;
    int counter = 0;

    Button b1, b2, b3, b4;
    TextView question;


LinkedList&lt;Long&gt; mAnsweredQuestions = new LinkedList&lt;Long&gt;();

    private String generateWhereClause(){
        StringBuilder result = new StringBuilder();
        for (Long l : mAnsweredQuestions){
            result.append(" AND _ID &lt;&gt; " + l);
        }
        return result.toString();
    }

    Runnable mLaunchTaskFinish = new Runnable() {
        public void run() {
            finish();
        }
     };

    private class Answer {
        public Answer(String opt, boolean correct) {
            option = opt;
            isCorrect = correct;
        }

        String option;
        boolean isCorrect;
    }
    Handler mHandler = new Handler();

    final OnClickListener clickListener = new OnClickListener() {
        public void onClick(View v) {
            Answer ans = (Answer) v.getTag();
            if (ans.isCorrect) {
                Intent i = new Intent("rs.androidaplikacije.toplo_hladno.TACANODGOVOR");
                startActivity(i);
                mHandler.postDelayed(mLaunchTaskFinish,1200);
            }
            else{   
                Intent i = new Intent(getApplicationContext(), PogresanOdgovor.class);
                i.putExtra("tacanOdgovor", tacanOdg);
                startActivity(i);
                mHandler.postDelayed(mLaunchTaskFinish,2200);
            }
        }
     };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);   //full screen
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.pitanja_cigle);

        InicirajVariable();

        nextQuestion();
    }

    private void nextQuestion() {
        counter++;

        TestAdapter mDbHelper = new TestAdapter(this);
        mDbHelper.createDatabase();

        try{    //Pokusava da otvori db

            mDbHelper.open();  //baza otvorena

            Cursor c = mDbHelper.getPitanjaCigle(generateWhereClause());

            mAnsweredQuestions.add(c.getLong(0));

            List&lt;Answer&gt; labels = new ArrayList&lt;Answer&gt;();

            labels.add(new Answer(c.getString(2), true));
            labels.add(new Answer(c.getString(3), false));
            labels.add(new Answer(c.getString(4), false));
            labels.add(new Answer(c.getString(5), false));

            tacanOdg = c.getString(2);

            Collections.shuffle(labels);

            question.setText(c.getString(1));

            b1.setText(labels.get(0).option);
            b1.setTag(labels.get(0));
            b1.setOnClickListener(clickListener);

            b2.setText(labels.get(1).option);
            b2.setTag(labels.get(1));
            b2.setOnClickListener(clickListener);

            b3.setText(labels.get(2).option);
            b3.setTag(labels.get(2));
            b3.setOnClickListener(clickListener);

            b4.setText(labels.get(3).option);
            b4.setTag(labels.get(3));
            b4.setOnClickListener(clickListener);

    }

    finally{    // kada zavrsi sa koriscenjem baze podataka, zatvara db
        mDbHelper.close();
    }
    }

    private void InicirajVariable() {
        Typeface naslov = Typeface.createFromAsset(getAssets(), "Lobster.ttf");
        Typeface dugmad = Typeface.createFromAsset(getAssets(), "Bebas.ttf");

        question = (TextView) findViewById(R.id.tvPitanjeCigle);
        b1 = (Button) findViewById(R.id.bOdgCigle1);
        b2 = (Button) findViewById(R.id.bOdgCigle2);
        b3 = (Button) findViewById(R.id.bOdgCigle3);
        b4 = (Button) findViewById(R.id.bOdgCigle4);

        b1.setTypeface(dugmad);
        b2.setTypeface(dugmad);
        b3.setTypeface(dugmad);
        b4.setTypeface(dugmad);
        question.setTypeface(naslov);

    }

}
</code></pre>
