Cambiar el fondo de Seleccionar / Hacer clic en el elemento de vista de lista - Android

Estoy trabajando en elquiz application.Para eso estoy usandolistview for the dispaly the answers options, Quiero cambiar el color de fondo de la vista de lista cuando el usuario selecciona el elemento de vista de lista, si la respuesta escorrect luego establece elgreen background ywrong luego establecerred background

Estoy tratando mucho, pero no consigo la solución.

Clase de adaptador

public class ListviewAdapter extends BaseAdapter{

public List<String> Questions;  

public Activity context;  
public LayoutInflater inflater;
private int[] colors = new int[] { 0x30505050, 0x30808080 };

private String[] opt_no;
public static View change_color;

public ListviewAdapter(Activity context,List<String> answers, String[] que_opt_no) {  
    super();  

    this.context = context;  
    this.Questions = answers; 
    this.opt_no = que_opt_no;

    //this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
}  

@Override  
public int getCount() {  
    // TODO Auto-generated method stub  
    return Questions.size();  
}  

@Override  
public Object getItem(int position) {  
    // TODO Auto-generated method stub  
     return Questions.get(position);  
}  

@Override  
public long getItemId(int position) {  
    // TODO Auto-generated method stub  
    return 0;  
}  

public static class ViewHolder  
{  

    TextView txtquestion;  
    TextView txtquestion_no;  
}  

@Override  
public View getView(int position, View convertView, ViewGroup parent) {  
    // TODO Auto-generated method stub  

    ViewHolder holder; 

    LayoutInflater inflater = context.getLayoutInflater();
   // this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    String fontPath = "fonts/Face Your Fears.ttf";

    if(convertView==null)  
    {  
        holder = new ViewHolder();  
        convertView = inflater.inflate(R.layout.quiz_questions_listitem, null);  

        holder.txtquestion = (TextView) convertView.findViewById(R.id.textView_option);
        holder.txtquestion_no = (TextView) convertView.findViewById(R.id.textView_option_no);

       // holder.txtquestion .setTypeface(Typeface.createFromAsset(convertView.getContext().getAssets(),fontPath));

        convertView.setTag(holder);  

    }  
    else  
        holder=(ViewHolder)convertView.getTag(); 


   /* int colorPos = position % colors.length;
    convertView.setBackgroundColor(colors[colorPos]); */

    change_color = convertView;

   // convertView.setBackgroundResource(R.drawable.listview_background);


    holder.txtquestion.setText(Questions.get(position)); 
    holder.txtquestion_no.setText(opt_no[position]); 

    return convertView;  
}  

/*public static void setbackground(){

    String answer = SelectedAnswer.getAnswer();
       if (Display_questions.currentQ.getAnswer().trim().equals(answer.trim()))
    { 

          Toast.makeText(change_color.getContext(), "red",Toast.LENGTH_SHORT).show();
         change_color.setBackgroundResource(R.drawable.listview_background);
        //ListviewAdapter.change_color.setBackgroundResource(R.drawable.listview_background);
        //Display_questions.currentGame.incrementRightAnswers();
    }
    else{

        Toast.makeText(change_color.getContext(), "Blue",Toast.LENGTH_SHORT).show();
        change_color.setBackgroundResource(R.drawable.listview_false_background);
        //Display_questions.currentGame.incrementWrongAnswers();
    }
}*/

}

Clase de Java

 public class Display_questions extends Activity{

 public static Question currentQ;
  public static GamePlay currentGame;
 ListView listview;

ListviewAdapter adapter;

String que_opt_no[] = {"a) ","b)","c) ","d) "};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.quiz_questions);

             listview = (ListView) findViewById(R.id.questions_list);
        listview.setItemsCanFocus(false);

        GoToNextQuestion();
}

private void GoToNextQuestion() {
    // TODO Auto-generated method stub

    listview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> myAdapter, View myView, int pos, long mylng) {


                String  selectedFromList = (String) listview.getItemAtPosition(pos);

                 SelectedAnswer.setAnswer(selectedFromList);

                 if (!checkAnswer(pos)) return;

                if (currentGame.isGameOver()){

                    Intent i = new Intent(Display_questions.this, Display_result.class);
                    i.putExtra("Timer_Value", TimerTime);
                    startActivity(i); 

                    finish();
                }
                else{

                    GoToNextQuestion();


                } 
            }
          });

     setQuestions();
  }

 private void setQuestions() {

    // set the question text from current question

    String question = currentQ.getQuestion().trim();
    TextView qText = (TextView) findViewById(R.id.txt_questions);
    qText.setText(question);


    // set the available options
    List<String> answers = currentQ.getQuestionOptions();

     adapter = new ListviewAdapter(this,answers,que_opt_no);

     listview.setAdapter(adapter);

}

 static boolean checkAnswer(int selectedPosition) {

    String answer = SelectedAnswer.getAnswer();

    if (answer==null){

        return false;
    }
    else {

         AnswerStates state = AnswerStates.NONE;

        if (currentQ.getAnswer().trim().equals(answer.trim()))
        { 

            //listview.setBackgroundResource(R.drawable.listview_background);

            currentGame.incrementRightAnswers();
            state = AnswerStates.RIGHT;

        }
        else{

            //ListviewAdapter.setbackground();
            currentGame.incrementWrongAnswers();
            state = AnswerStates.WRONG;

        }

        adapter.setSelectedAnswerState(selectedPosition, state);
        adapter.notifyDataSetChanged();

        return true;
    }
}

  }

Editar: revisa mis imágenes: 1.) 2.)

Respuestas a la pregunta(2)

Su respuesta a la pregunta