2016-03-19 13 views
0

"Variable ist innerhalb der inneren Klasse zugegriffen werden muss als endgültig erklärt werden" ist der Fehler, den ich zuerst bekomme. Also ändere ich es zum Finale. Sobald ich es auf final ändere, erhalte ich einen anderen Fehler, der besagt, dass der letzten Variablen kein Wert zugewiesen werden kann. Ich stehe hier fest, was ich hier tun soll. Its me den Fehler geben auf int exam_gradeSpeichern Seekbar Wert, aber immer noch, dass ich endgültige verwenden muss

public class CalculateGradeActivity extends Activity { 



@Override 
protected void onCreate(Bundle savedInstanceState) { 


    super.onCreate(savedInstanceState); 
    setContentView(R.layout.calculate_grade_view); 
    seekbar(); 



} 
public void seekbar(){ 
    SeekBar seek_bar1 = (SeekBar) findViewById(R.id.seekBarExam); 


    final TextView text_view = (TextView) findViewById(R.id.percentageSeekbar1); 



    int exam_grade; 
    TextView text_view5 = (TextView) findViewById(R.id.numeric_grade_id_output); 
    text_view5.setText(String.valueOf(exam_grade)); 


    int progress = seek_bar1.getProgress(); 
    text_view.setText(String.valueOf(progress)); 




    seek_bar1.setOnSeekBarChangeListener(

      new SeekBar.OnSeekBarChangeListener() { 

       @Override 
       public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
        exam_grade = progress; 
        text_view.setText(String.valueOf(progress) + "%"); 


       } 

       @Override 
       public void onStartTrackingTouch(SeekBar seekBar) { 

       } 

       @Override 
       public void onStopTrackingTouch(SeekBar seekBar) { 

       } 
      } 
    ); 








}//ends seekbar function 

}

Antwort

2

Hallo nicht Ihre Textview als endgültig erklären, es in der Klasse setzen Attribute statt.

public class CalculateGradeActivity extends Activity { 

    TextView text_view; 
    SeekBar seek_bar1 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.calculate_grade_view); 
    seek_bar1 = (SeekBar) findViewById(R.id.seekBarExam); 
    text_view = (TextView) findViewById(R.id.percentageSeekbar1); 
    seekbar(); 

} 

Machen Sie dasselbe für alle Ansichten (Deklarieren Sie sie als Attribute).

+0

Dank !! Musste meine exam_grade Variable auch in den Klassenattributen platzieren – Carlitos

0

final bedeutet, dass es nur einmal vergeben werden kann. Ich bin sicher, dass Textview nicht endgültig sein sollte. sowieso, versuchen, die Erklärungen der Prüfung Klasse setzen und Textview in Ihrem onCreate ...

 setContentView(R.layout.calculate_grade_view); 
    int exam_grade; 
    TextView text_view = (TextView) findViewById(R.id.percentageSeekbar1); 
    seekbar();