2014-03-26 45 views
4

我在數據庫中存儲了一些評級。無論何時移動seekbar,那麼這些評級顯示在textview.But問題是,只要我移回拇指,然後向後值不顯示。它只顯示最後一個值。當我向後移動拇指時,如何顯示評分。我曾嘗試爲 -顯示以前的值seekbar

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
    { 
     view = inflater.inflate(R.layout.interval, container, false); 
     seekbar=(SeekBar)view.findViewById(R.id.seekBar1); 
     ques = (TextView)view. findViewById(R.id.question); 
     textrating=(TextView)view.findViewById(R.id.textRating); 
     /*l1=(LinearLayout)view.findViewById(R.id.linear);*/ 
     db=new DatabaseHandler(getActivity()); 
     retrieveQuestion(); 
     retrieveRating(); 
     seekbar.setProgress(0); 
     seekbar.incrementProgressBy(diff); 
     seekbar.setMax(ratinglast); 

     seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
     { 

      @Override 
      public void onProgressChanged(SeekBar seekbar, int progress, boolean fromuser) 
      { 
       Log.e("DEBUG", "Progress is: "+progress); 
       if(j<len) 
       { 
        progress=rating[j]; 
        j++; 
        textrating.setText(""+progress); 
       } 




      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekbar) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onStopTrackingTouch(SeekBar seekbar) 
      { 
       // TODO Auto-generated method stub 


     } 

     }); 


     return view; 
    } 

    void retrieveQuestion() 
    { 
     db.open(); 
     Cursor c=db.getQuestion(username,surveyName,selectedQues,question_no); 
     if(c.moveToFirst()) 
     { 
      int index=c.getColumnIndex("question"); 
      question1= c.getString(index); 
      ques.setText(question1); 
     } 

    } 

    public void retrieveRating() 
    { 
     Cursor c=db.getAnswer(username, surveyName, selectedQues, question_no); 
     len=c.getCount(); 
     Log.e("len",""+len); 
     if(c.moveToFirst()) 
     { 
      do 
      { 
       int index=c.getColumnIndex("answer"); 
       rating[i]=c.getInt(index); 
       Log.e("i",""+i); 
       Log.e("rating in do while",""+rating[i]); 
       i++; 
      }while(c.moveToNext()); 
     } 
     rating1=rating[0]; 
     rating2=rating[1]; 
     diff=rating2-rating1; 
     Log.e("diff",""+diff); 
     ratinglast=rating[len-1]; 
     Log.e("ratinglast",""+ratinglast); 
    } 
} 

回答

1

的代碼,我發現,我已經實現了我的problem-

代碼替代的解決方案是:

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
       { 
        view = inflater.inflate(R.layout.interval, container, false); 
        seekbar=(SeekBar)view.findViewById(R.id.seekBar1); 
        ques = (TextView)view. findViewById(R.id.question); 
        textrating=(TextView)view.findViewById(R.id.textRating); 
        db=new DatabaseHandler(getActivity()); 
        retrieveQuestion(); 
        retrieveRating(); 
        seekbar.setProgress(0); 
        //ratinglast is last rating 
        seekbar.setMax(ratinglast); 

        seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
        { 

         @Override 
         public void onProgressChanged(SeekBar seekbar, int progress, boolean fromuser) 
         { 
          Log.e("DEBUG", "Progress is: "+progress); 
          //diff is difference between two ratings. 
          progress = ((int)Math.round(progress/diff))*diff; 
          seekbar.setProgress(progress); 
          textrating.setText(progress + ""); 
      } 
      @Override 
         public void onStartTrackingTouch(SeekBar seekbar) { 
          // TODO Auto-generated method stub 
         } 

         @Override 
         public void onStopTrackingTouch(SeekBar seekbar) 
         { 

         } 
        }); 
        return view; 
       } 
     //Method to retrieve rating from sqlite database 
     public void retrieveRating() 
      { 
       Cursor c=db.getAnswer(username, surveyName, selectedQues, question_no); 
       len=c.getCount(); 
       Log.e("len",""+len); 
       if(c.moveToFirst()) 
       { 
        do 
        { 
         int index=c.getColumnIndex("answer"); 
         rating[i]=c.getInt(index); 
         Log.e("i",""+i); 
         Log.e("rating in do while",""+rating[i]); 
         i++; 
        }while(c.moveToNext()); 
       } 
       rating1=rating[0]; 
       rating2=rating[1]; 
       diff=rating2-rating1; 
       Log.e("diff",""+diff); 
       ratinglast=rating[len-1]; 
       Log.e("ratinglast",""+ratinglast); 
      }